Determining schedule constraints from construction plans

ABSTRACT

Systems, methods and non-transitory computer readable media for determining schedule constraints from construction plans are provided. For example, at least part of a construction plan for a construction site may be analyzed to identify a first object of a first object type planned to be constructed in the construction site, a first element of a first element type planned to be connected to the first object, and a second element of a second element type planned to be connected to the first object, a plurality of construction tasks for the construction of the first object, and determining a sequence for the plurality of tasks based on the first element type and the second element type.

CROSS REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of priority of U.S. ProvisionalPatent Application No. 62/900,500, filed on Sep. 14, 2019, and U.S.Provisional Patent Application No. 62/960,330, filed on Jan. 13, 2020.

The entire contents of all of the above-identified applications areherein incorporated by reference.

BACKGROUND Technological Field

The disclosed embodiments generally relate to systems and methods forscheduling tasks. More particularly, the disclosed embodiments relate tosystems and methods for scheduling tasks in construction sites.

Background Information

Image sensors are now part of numerous devices, from security systems tomobile phones, and the availability of images and videos produced bythose devices is increasing.

The construction industry deals with building of new structures,additions and modifications to existing structures, maintenance ofexisting structures, repair of existing structures, improvements ofexisting structures, and so forth. While construction is widespread, theconstruction process still needs improvements. Manual monitoring,analysis, inspection, and management of the construction process proveto be difficult, expensive, and inefficient. As a result, manyconstruction projects suffer from cost and schedule overruns, and inmany times the quality of the constructed structures is lacking.

SUMMARY

In some embodiments, systems comprising at least one processor areprovided. In some examples, the systems may further comprise at leastone of an image sensor, a display device, a communication device, amemory unit, and so forth.

In some embodiments, systems, methods and non-transitory computerreadable media for providing information on construction errors based onconstruction site images are provided.

In some embodiments, image data captured from a construction site usingat least one image sensor may be obtained. The image data may beanalyzed to identify at least one construction error. Further, the imagedata may be analyzed to identify a type of the at least one constructionerror. In response to a first identified type of the at least oneconstruction error, first information may be provided, and in responseto a second identified type of the at least one construction error,providing the first information may be forgone.

In some embodiments, systems, methods and non-transitory computerreadable media for determining the quality of concrete from constructionsite images are provided.

In some embodiments, image data captured from a construction site usingat least one image sensor may be obtained. The image data may beanalyzed to identify a region of the image data depicting at least partof an object, wherein the object is of an object type and made, at leastpartly, of concrete. The image data may be further analyzed to determinea quality indication associated with the concrete. The object type ofthe object may be used to select a threshold. The quality indication maybe compared with the selected threshold. An indication to a user may beprovided to a user based on a result of the comparison of the qualityindication with the selected threshold.

In some embodiments, systems, methods and non-transitory computerreadable media for providing information based on construction siteimages are provided.

In some embodiments, image data captured from a construction site usingat least one image sensor may be obtained. Further, at least oneelectronic record associated with the construction site may be obtained.The image data may be analyzed to identify at least one discrepancybetween the at least one electronic record and the construction site.Further, information based on the identified at least one discrepancymay be provided to a user.

In some embodiments, systems, methods and non-transitory computerreadable media for updating records based on construction site imagesare provided.

In some embodiments, image data captured from a construction site usingat least one image sensor may be obtained. The image data may beanalyzed to detect at least one object in the construction site.Further, at least one electronic record associated with the constructionsite may be updated based on the detected at least one object. In someexamples, the at least one electronic record may comprise a searchabledatabase, and updating the at least one electronic record may compriseindexing the at least one object in the searchable database. Forexample, the searchable database may be searched for a record related tothe at least one object. In response to a determination that thesearchable database includes a record related to the at least oneobject, the record related to the at least one object may be updated. Inresponse to a determination that the searchable database do not includea record related to the at least one object, a record related to the atleast one object may be added to the searchable database.

In some embodiments, systems, methods and non-transitory computerreadable media for determining image capturing parameters inconstruction sites are provided.

In some embodiments, at least one electronic record may be accessed, theat least one electronic record may include information related to anobject in a construction site. Further, in some examples, theinformation related to the object may be analyzed to determine at leastone capturing parameter associated with the object. Further, in someexamples, the systems, methods and non-transitory computer readablemedia may cause a capturing, at the construction site, of at least oneimage of the object using the determined at least one capturingparameter associated with the object.

In some embodiments, a previously captured image of an object in aconstruction site may be accessed. The previously captured image of theobject may be analyzed to determine at least one capturing parameterassociated with the object for a prospective image capturing. Further,in some examples, the systems, methods and non-transitory computerreadable media may cause capturing, at the construction site, of atleast one image of the object using the determined at least onecapturing parameter associated with the object.

In some embodiments, systems, methods and non-transitory computerreadable media for controlling image acquisition robots in constructionsites are provided.

In some embodiments, a plurality of images captured in a constructionsite may be obtained, the plurality of images may comprise at least afirst image corresponding to a first point in time and a second imagecorresponding to a second point in time, the second point in time maydiffer from the first point in time. The first image and the secondimage may be analyzed to determine whether a change occurred in aparticular area of the construction site between the first point in timeand the second point in time. It may be determined whether a higherquality image of the particular area of the construction site is needed.In response to a determination that a change occurred in the particulararea of the construction site and a determination that a higher qualityimage is needed, the systems, methods and non-transitory computerreadable media may cause an image acquisition robot to acquire at leastone image of the particular area of the construction site, and inresponse to at least one of a determination that no change occurred inthe particular area of the construction site and a determination that ahigher quality image is not needed, causing the image acquisition robotto acquire the at least one image of the particular area of theconstruction site may be withheld and/or forgone.

In some embodiments, systems, methods and non-transitory computerreadable media for monitoring sequence of events in construction sitesare provided.

In some embodiments, a first image captured in a construction site usingan image sensor may be obtained, the first image may correspond to afirst point in time. The first image may be analyzed to determinewhether a first event occurred in the construction site prior to thefirst point in time. Further, it may be determined whether a secondevent occurred in the construction site prior to the first point intime. In response to a determination that the first event occurred inthe construction site prior to the first point in time and adetermination that the second event did not occur in the constructionsite prior to the first point in time, a first notification may beprovided, and in response to at least one of a determination that thefirst event did not occur in the construction site prior to the firstpoint in time and a determination that the second event occurred in theconstruction site prior to the first point in time, providing the firstnotification may be withheld and/or forgone.

In some embodiments, systems, methods and non-transitory computerreadable media for determining schedule constraints from constructionplans are provided.

In some embodiments, at least part of a construction plan for aconstruction site may be obtained. The at least part of the constructionplan may be analyzed to identify a first object of a first object typeplanned to be constructed in the construction site, a first element of afirst element type planned to be connected to the first object, and asecond element of a second element type planned to be connected to thefirst object. Based on the first object type, a first plurality ofconstruction tasks for the construction of the first object may bedetermined, the first plurality of construction tasks may comprise atleast a first construction task and a second construction task. Based onthe first element type, a second plurality of construction tasks for theconstruction of the first object and related to the first element may bedetermined, the second plurality of construction tasks may comprise atleast a third construction task and a fourth construction task. Based onthe second element type, a third plurality of construction tasks for theconstruction of the first object and related to the second element maybe determined, the third plurality of construction tasks may comprise atleast a fifth construction task and a sixth construction task. Based onthe first element type and the second element type, it may be determinedthat the first construction task needs to be performed before the thirdconstruction task, that the third construction task needs to beperformed before the fifth construction task, that the fifthconstruction task needs to be performed before the second constructiontask, and that the second construction task needs to be performed beforethe fourth construction task and the sixth construction task.

In some embodiments, systems, methods and non-transitory computerreadable media for verifying purported parameters of capturing of imagesof construction sites are provided.

In some embodiments, an image of a construction site and an indicationof at least one purported parameter of a capturing of the image may beobtained. The image may be analyzed to determine whether the indicatedat least one purported parameter of the capturing of the image isconsistent with a visual content of the image. In response to adetermination that the indicated at least one purported parameter of thecapturing of the image is consistent with the visual content of theimage, a first update to an electronic record associated with theconstruction site based on an analysis of the image may be caused, andin response to a determination that the indicated at least one purportedparameter of the capturing of the image is inconsistent with the visualcontent of the image, first information may be provided to a user.

In some embodiments, systems, methods and non-transitory computerreadable media for generating tasks from images of construction sitesare provided.

In some embodiments, image data captured from a construction site usingat least one image sensor may be obtained. The image data may beanalyzed to determine at least one desired task related to theconstruction site. The image data may be analyzed to determine at leastone parameter of the at least one desired task. The determined at leastone parameter of the at least one desired task may be used to provideinformation configured to cause the performance of the at least onedesired task.

In some embodiments, systems, methods and non-transitory computerreadable media for exploring images of construction sites byconstruction stages are provided.

In some embodiments, a plurality of images of a construction site may beaccessed, each image of the plurality of images may correspond to alocation in the construction site and a construction stage. Anindication of a first location in the construction site may be received,and an indication of a first construction stage may be received. Inresponse to the received indication of the first location in theconstruction site and the received indication of the first constructionstage, a first image may be selected of the plurality of images, thefirst image may correspond to the first location and the firstconstruction stage, and the selected first image may be presented. Afterpresenting the selected first image, an indication of a second locationin the construction site may be received, the second location may differfrom the first location. In response to the received indication of thesecond location in the construction site, a second image of theplurality of images may be selected, the second image may correspond tothe second location and the first construction stage, and the selectedsecond image may be presented. After presenting the selected secondimage, an indication of a first capturing time may be received. Inresponse to the received indication of the first capturing time, a thirdimage of the plurality of images may be selected, the third image maycorrespond to the second location and the first capturing time, thethird image may not correspond to the first construction stage, and theselected third image may be presented. After presenting the selectedthird image, an indication of a third location in the construction sitemay be received. In response to the received indication of the thirdlocation in the construction site, a fourth image of the plurality ofimages may be selected, the fourth image may correspond to the thirdlocation and the first capturing time, the fourth image may notcorrespond to the first construction stage, and the selected fourthimage may be presented.

Consistent with other disclosed embodiments, non-transitorycomputer-readable storage media may store data and/or computerimplementable instructions for carrying out any of the methods describedherein.

The foregoing general description and the following detailed descriptionare exemplary and explanatory only and are not restrictive of theclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B are block diagrams illustrating some possibleimplementations of a communicating system.

FIGS. 2A and 2B are block diagrams illustrating some possibleimplementations of an apparatus.

FIG. 3 is a block diagram illustrating a possible implementation of aserver.

FIGS. 4A and 4B are block diagrams illustrating some possibleimplementations of a cloud platform.

FIG. 5 is a block diagram illustrating a possible implementation of acomputational node.

FIG. 6 illustrates an exemplary embodiment of a memory storing aplurality of modules.

FIG. 7 illustrates an example of a method for processing images ofconcrete.

FIG. 8 is a schematic illustration of an example image captured by anapparatus consistent with an embodiment of the present disclosure.

FIG. 9 illustrates an example of a method for providing informationbased on construction site images.

FIG. 10A is a schematic illustration of an example construction planconsistent with an embodiment of the present disclosure.

FIG. 10B is a schematic illustration of an example image captured by anapparatus consistent with an embodiment of the present disclosure.

FIG. 11 illustrates an example of a method for updating records based onconstruction site images.

FIG. 12 illustrates an example of a method for determining imagecapturing parameters in construction sites.

FIG. 13 illustrates an example of a method for determining imagecapturing parameters in construction sites.

FIG. 14 illustrates an example of a method for controlling imageacquisition robots in construction sites.

FIG. 15 illustrates an example of a method for monitoring sequence ofevents in construction sites.

FIG. 16 illustrates an example of a method for determining scheduleconstraints from construction plans.

FIGS. 17A, 17B, 17C, 17D and 17E illustrate an example of a method forverifying purported parameters of capturing of images of constructionsites.

FIG. 18 illustrates an example of a method for generating tasks fromimages of construction sites.

FIGS. 19A and 19B illustrate an example of a method for exploring imagesof construction sites by construction stages.

DESCRIPTION

Unless specifically stated otherwise, as apparent from the followingdiscussions, it is appreciated that throughout the specificationdiscussions utilizing terms such as “processing”, “calculating”,“computing”, “determining”, “generating”, “setting”, “configuring”,“selecting”, “defining”, “applying”, “obtaining”, “monitoring”,“providing”, “identifying”, “segmenting”, “classifying”, “analyzing”,“associating” “ ” “ ” “ ” “ ” g, extracting, storing, receiving,transmitting, or the like include, action and/or processes of a computerthat manipulate and/or transform data into other data, said datarepresented as physical quantities, for example such as electronicquantities, and/or said data representing the physical objects. Theterms “computer”, “processor”, “controller”, “processing unit”,“computing unit”, and “processing module” should be expansivelyconstrued to cover any kind of electronic device, component or unit withdata processing capabilities, including, by way of non-limiting example,a personal computer, a wearable computer, a tablet, a smartphone, aserver, a computing system, a cloud computing platform, a communicationdevice, a processor, such as, a digital signal processor (DSP), an imagesignal processor (ISR), a microcontroller, a field programmable gatearray (FPGA), an application specific integrated circuit (ASIC), acentral processing unit (CPA), a graphics processing unit (GPU), avisual processing unit (VPU), and so on), possibly with embedded memory,a single core processor, a multi core processor, a core within aprocessor, any other electronic computing device, or any combination ofthe above.

The operations in accordance with the teachings herein may be performedby a computer specially constructed or programmed to perform thedescribed functions.

As used herein, the phrase “for example,” “such as”, “for instance” andvariants thereof describe non-limiting embodiments of the presentlydisclosed subject matter. Reference in the specification to “one case”,“some cases”, “other cases” or variants thereof means that a particularfeature, structure or characteristic described in connection with theembodiment(s) may be included in at least one embodiment of thepresently disclosed subject matter. Thus the appearance of the phrase“one case”, “some cases”, “other cases” or variants thereof does notnecessarily refer to the same embodiment(s). As used herein, the term“and/or” includes any and all combinations of one or more of theassociated listed items.

It is appreciated that certain features of the presently disclosedsubject matter, which are, for clarity, described in the context ofseparate embodiments, may also be provided in combination in a singleembodiment. Conversely, various features of the presently disclosedsubject matter, which are, for brevity, described in the context of asingle embodiment, may also be provided separately or in any suitablesub-combination.

The term “image sensor” is recognized by those skilled in the art andrefers to any device configured to capture images, a sequence of images,videos, and so forth. This includes sensors that convert optical inputinto images, where optical input can be visible light (like in acamera), radio waves, microwaves, terahertz waves, ultraviolet light,infrared light, x-rays, gamma rays, and/or any other light spectrum.This also includes both 2D and 3D sensors. Examples of image sensortechnologies may include: CCD, CMOS, NMOS, and so forth. 3D sensors maybe implemented using different technologies, including: stereo camera,active stereo camera, time of flight camera, structured light camera,radar, range image camera, and so forth.

The term “compressive strength test” is recognized by those skilled inthe art and refers to a test that mechanically measure the maximalamount of compressive load a material, such as a body or a cube ofconcrete, can bear before fracturing.

The term “water permeability test” is recognized by those skilled in theart and refers to a test of a body or a cube of concrete that measuresthe depth of penetration of water maintained at predetermined pressuresfor a predetermined time intervals.

The term “rapid chloride ion penetration test” is recognized by thoseskilled in the art and refers to a test that measures the ability ofconcrete to resist chloride ion penetration.

The term “water absorption test” is recognized by those skilled in theart and refers to a test of concrete specimens that, after drying thespecimens, emerges the specimens in water at predetermined temperatureand/or pressure for predetermined time intervals, and measures theweight of water absorbed by the specimens.

The term “initial surface absorption test” is recognized by thoseskilled in the art and refers to a test that measures the flow of waterper concrete surface area when subjected to a constant water head.

In embodiments of the presently disclosed subject matter, one or morestages illustrated in the figures may be executed in a different orderand/or one or more groups of stages may be executed simultaneously andvice versa. The figures illustrate a general schematic of the systemarchitecture in accordance embodiments of the presently disclosedsubject matter. Each module in the figures can be made up of anycombination of software, hardware and/or firmware that performs thefunctions as defined and explained herein. The modules in the figuresmay be centralized in one location or dispersed over more than onelocation.

It should be noted that some examples of the presently disclosed subjectmatter are not limited in application to the details of construction andthe arrangement of the components set forth in the following descriptionor illustrated in the drawings. The invention can be capable of otherembodiments or of being practiced or carried out in various ways. Also,it is to be understood that the phraseology and terminology employedherein is for the purpose of description and should not be regarded aslimiting.

In this document, an element of a drawing that is not described withinthe scope of the drawing and is labeled with a numeral that has beendescribed in a previous drawing may have the same use and description asin the previous drawings.

The drawings in this document may not be to any scale. Different figuresmay use different scales and different scales can be used even withinthe same drawing, for example different scales for different views ofthe same object or different scales for the two adjacent objects.

FIG. 1A is a block diagram illustrating a possible implementation of acommunicating system. In this example, apparatuses 200 a and 200 b maycommunicate with server 300 a, with server 300 b, with cloud platform400, with each other, and so forth. Possible implementations ofapparatuses 200 a and 200 b may include apparatus 200 as described inFIGS. 2A and 2B. Possible implementations of servers 300 a and 300 b mayinclude server 300 as described in FIG. 3. Some possible implementationsof cloud platform 400 are described in FIGS. 4A, 4B and 5. In thisexample apparatuses 200 a and 200 b may communicate directly with mobilephone 111, tablet 112, and personal computer (PC) 113. Apparatuses 200 aand 200 b may communicate with local router 120 directly, and/or throughat least one of mobile phone 111, tablet 112, and personal computer (PC)113. In this example, local router 120 may be connected with acommunication network 130. Examples of communication network 130 mayinclude the Internet, phone networks, cellular networks, satellitecommunication networks, private communication networks, virtual privatenetworks (VPN), and so forth. Apparatuses 200 a and 200 b may connect tocommunication network 130 through local router 120 and/or directly.Apparatuses 200 a and 200 b may communicate with other devices, such asservers 300 a, server 300 b, cloud platform 400, remote storage 140 andnetwork attached storage (NAS) 150, through communication network 130and/or directly.

FIG. 1B is a block diagram illustrating a possible implementation of acommunicating system. In this example, apparatuses 200 a, 200 b and 200c may communicate with cloud platform 400 and/or with each other throughcommunication network 130. Possible implementations of apparatuses 200a, 200 b and 200 c may include apparatus 200 as described in FIGS. 2Aand 2B. Some possible implementations of cloud platform 400 aredescribed in FIGS. 4A, 4B and 5.

FIGS. 1A and 1B illustrate some possible implementations of acommunication system. In some embodiments, other communication systemsthat enable communication between apparatus 200 and server 300 may beused. In some embodiments, other communication systems that enablecommunication between apparatus 200 and cloud platform 400 may be used.In some embodiments, other communication systems that enablecommunication among a plurality of apparatuses 200 may be used.

FIG. 2A is a block diagram illustrating a possible implementation ofapparatus 200. In this example, apparatus 200 may comprise: one or morememory units 210, one or more processing units 220, and one or moreimage sensors 260. In some implementations, apparatus 200 may compriseadditional components, while some components listed above may beexcluded.

FIG. 2B is a block diagram illustrating a possible implementation ofapparatus 200. In this example, apparatus 200 may comprise: one or morememory units 210, one or more processing units 220, one or morecommunication modules 230, one or more power sources 240, one or moreaudio sensors 250, one or more image sensors 260, one or more lightsources 265, one or more motion sensors 270, and one or more positioningsensors 275. In some implementations, apparatus 200 may compriseadditional components, while some components listed above may beexcluded. For example, in some implementations apparatus 200 may alsocomprise at least one of the following: one or more barometers; one ormore user input devices; one or more output devices; and so forth. Inanother example, in some implementations at least one of the followingmay be excluded from apparatus 200: memory units 210, communicationmodules 230, power sources 240, audio sensors 250, image sensors 260,light sources 265, motion sensors 270, and positioning sensors 275.

In some embodiments, one or more power sources 240 may be configured to:power apparatus 200; power server 300; power cloud platform 400; and/orpower computational node 500. Possible implementation examples of powersources 240 may include: one or more electric batteries; one or morecapacitors; one or more connections to external power sources; one ormore power convertors; any combination of the above; and so forth.

In some embodiments, the one or more processing units 220 may beconfigured to execute software programs. For example, processing units220 may be configured to execute software programs stored on the memoryunits 210. In some cases, the executed software programs may storeinformation in memory units 210. In some cases, the executed softwareprograms may retrieve information from the memory units 210. Possibleimplementation examples of the processing units 220 may include: one ormore single core processors, one or more multicore processors; one ormore controllers; one or more application processors; one or more systemon a chip processors; one or more central processing units; one or moregraphical processing units; one or more neural processing units; anycombination of the above; and so forth.

In some embodiments, the one or more communication modules 230 may beconfigured to receive and transmit information. For example, controlsignals may be transmitted and/or received through communication modules230. In another example, information received though communicationmodules 230 may be stored in memory units 210. In an additional example,information retrieved from memory units 210 may be transmitted usingcommunication modules 230. In another example, input data may betransmitted and/or received using communication modules 230. Examples ofsuch input data may include: input data inputted by a user using userinput devices; information captured using one or more sensors; and soforth. Examples of such sensors may include: audio sensors 250; imagesensors 260; motion sensors 270; positioning sensors 275; chemicalsensors; temperature sensors; barometers; and so forth.

In some embodiments, the one or more audio sensors 250 may be configuredto capture audio by converting sounds to digital information. Somenon-limiting examples of audio sensors 250 may include: microphones,unidirectional microphones, bidirectional microphones, cardioidmicrophones, omnidirectional microphones, onboard microphones, wiredmicrophones, wireless microphones, any combination of the above, and soforth. In some examples, the captured audio may be stored in memoryunits 210. In some additional examples, the captured audio may betransmitted using communication modules 230, for example to othercomputerized devices, such as server 300, cloud platform 400,computational node 500, and so forth. In some examples, processing units220 may control the above processes. For example, processing units 220may control at least one of: capturing of the audio; storing thecaptured audio; transmitting of the captured audio; and so forth. Insome cases, the captured audio may be processed by processing units 220.For example, the captured audio may be compressed by processing units220; possibly followed: by storing the compressed captured audio inmemory units 210; by transmitted the compressed captured audio usingcommunication modules 230; and so forth. In another example, thecaptured audio may be processed using speech recognition algorithms. Inanother example, the captured audio may be processed using speakerrecognition algorithms.

In some embodiments, the one or more image sensors 260 may be configuredto capture visual information by converting light to: images; sequenceof images; videos; 3D images; sequence of 3D images; 3D videos; and soforth. In some examples, the captured visual information may be storedin memory units 210. In some additional examples, the captured visualinformation may be transmitted using communication modules 230, forexample to other computerized devices, such as server 300, cloudplatform 400, computational node 500, and so forth. In some examples,processing units 220 may control the above processes. For example,processing units 220 may control at least one of: capturing of thevisual information; storing the captured visual information;transmitting of the captured visual information; and so forth. In somecases, the captured visual information may be processed by processingunits 220. For example, the captured visual information may becompressed by processing units 220; possibly followed: by storing thecompressed captured visual information in memory units 210; bytransmitted the compressed captured visual information usingcommunication modules 230; and so forth. In another example, thecaptured visual information may be processed in order to: detectobjects, detect events, detect action, detect face, detect people,recognize person, and so forth.

In some embodiments, the one or more light sources 265 may be configuredto emit light, for example in order to enable better image capturing byimage sensors 260. In some examples, the emission of light may becoordinated with the capturing operation of image sensors 260. In someexamples, the emission of light may be continuous. In some examples, theemission of light may be performed at selected times. The emitted lightmay be visible light, infrared light, x-rays, gamma rays, and/or in anyother light spectrum. In some examples, image sensors 260 may capturelight emitted by light sources 265, for example in order to capture 3Dimages and/or 3D videos using active stereo method.

In some embodiments, the one or more motion sensors 270 may beconfigured to perform at least one of the following: detect motion ofobjects in the environment of apparatus 200; measure the velocity ofobjects in the environment of apparatus 200; measure the acceleration ofobjects in the environment of apparatus 200; detect motion of apparatus200; measure the velocity of apparatus 200; measure the acceleration ofapparatus 200; and so forth. In some implementations, the one or moremotion sensors 270 may comprise one or more accelerometers configured todetect changes in proper acceleration and/or to measure properacceleration of apparatus 200. In some implementations, the one or moremotion sensors 270 may comprise one or more gyroscopes configured todetect changes in the orientation of apparatus 200 and/or to measureinformation related to the orientation of apparatus 200. In someimplementations, motion sensors 270 may be implemented using imagesensors 260, for example by analyzing images captured by image sensors260 to perform at least one of the following tasks: track objects in theenvironment of apparatus 200; detect moving objects in the environmentof apparatus 200; measure the velocity of objects in the environment ofapparatus 200; measure the acceleration of objects in the environment ofapparatus 200; measure the velocity of apparatus 200, for example bycalculating the egomotion of image sensors 260; measure the accelerationof apparatus 200, for example by calculating the egomotion of imagesensors 260; and so forth. In some implementations, motion sensors 270may be implemented using image sensors 260 and light sources 265, forexample by implementing a LIDAR using image sensors 260 and lightsources 265. In some implementations, motion sensors 270 may beimplemented using one or more RADARs. In some examples, informationcaptured using motion sensors 270: may be stored in memory units 210,may be processed by processing units 220, may be transmitted and/orreceived using communication modules 230, and so forth.

In some embodiments, the one or more positioning sensors 275 may beconfigured to obtain positioning information of apparatus 200, to detectchanges in the position of apparatus 200, and/or to measure the positionof apparatus 200. In some examples, positioning sensors 275 may beimplemented using one of the following technologies: Global PositioningSystem (GPS), GLObal NAvigation Satellite System (GLONASS), Galileoglobal navigation system, BeiDou navigation system, other GlobalNavigation Satellite Systems (GNSS), Indian Regional NavigationSatellite System (IRNSS), Local Positioning Systems (LPS), Real-TimeLocation Systems (RTLS), Indoor Positioning System (IPS), Wi-Fi basedpositioning systems, cellular triangulation, and so forth. In someexamples, information captured using positioning sensors 275 may bestored in memory units 210, may be processed by processing units 220,may be transmitted and/or received using communication modules 230, andso forth.

In some embodiments, the one or more chemical sensors may be configuredto perform at least one of the following: measure chemical properties inthe environment of apparatus 200; measure changes in the chemicalproperties in the environment of apparatus 200; detect the present ofchemicals in the environment of apparatus 200; measure the concentrationof chemicals in the environment of apparatus 200. Examples of suchchemical properties may include: pH level, toxicity, temperature, and soforth. Examples of such chemicals may include: electrolytes, particularenzymes, particular hormones, particular proteins, smoke, carbondioxide, carbon monoxide, oxygen, ozone, hydrogen, hydrogen sulfide, andso forth. In some examples, information captured using chemical sensorsmay be stored in memory units 210, may be processed by processing units220, may be transmitted and/or received using communication modules 230,and so forth.

In some embodiments, the one or more temperature sensors may beconfigured to detect changes in the temperature of the environment ofapparatus 200 and/or to measure the temperature of the environment ofapparatus 200. In some examples, information captured using temperaturesensors may be stored in memory units 210, may be processed byprocessing units 220, may be transmitted and/or received usingcommunication modules 230, and so forth.

In some embodiments, the one or more barometers may be configured todetect changes in the atmospheric pressure in the environment ofapparatus 200 and/or to measure the atmospheric pressure in theenvironment of apparatus 200. In some examples, information capturedusing the barometers may be stored in memory units 210, may be processedby processing units 220, may be transmitted and/or received usingcommunication modules 230, and so forth.

In some embodiments, the one or more user input devices may beconfigured to allow one or more users to input information. In someexamples, user input devices may comprise at least one of the following:a keyboard, a mouse, a touch pad, a touch screen, a joystick, amicrophone, an image sensor, and so forth. In some examples, the userinput may be in the form of at least one of: text, sounds, speech, handgestures, body gestures, tactile information, and so forth. In someexamples, the user input may be stored in memory units 210, may beprocessed by processing units 220, may be transmitted and/or receivedusing communication modules 230, and so forth.

In some embodiments, the one or more user output devices may beconfigured to provide output information to one or more users. In someexamples, such output information may comprise of at least one of:notifications, feedbacks, reports, and so forth. In some examples, useroutput devices may comprise at least one of: one or more audio outputdevices; one or more textual output devices; one or more visual outputdevices; one or more tactile output devices; and so forth. In someexamples, the one or more audio output devices may be configured tooutput audio to a user, for example through: a headset, a set ofspeakers, and so forth. In some examples, the one or more visual outputdevices may be configured to output visual information to a user, forexample through: a display screen, an augmented reality display system,a printer, a LED indicator, and so forth. In some examples, the one ormore tactile output devices may be configured to output tactilefeedbacks to a user, for example through vibrations, through motions, byapplying forces, and so forth. In some examples, the output may beprovided: in real time, offline, automatically, upon request, and soforth. In some examples, the output information may be read from memoryunits 210, may be provided by a software executed by processing units220, may be transmitted and/or received using communication modules 230,and so forth.

FIG. 3 is a block diagram illustrating a possible implementation ofserver 300. In this example, server 300 may comprise: one or more memoryunits 210, one or more processing units 220, one or more communicationmodules 230, and one or more power sources 240. In some implementations,server 300 may comprise additional components, while some componentslisted above may be excluded. For example, in some implementationsserver 300 may also comprise at least one of the following: one or moreuser input devices; one or more output devices; and so forth. In anotherexample, in some implementations at least one of the following may beexcluded from server 300: memory units 210, communication modules 230,and power sources 240.

FIG. 4A is a block diagram illustrating a possible implementation ofcloud platform 400. In this example, cloud platform 400 may comprisecomputational node 500 a, computational node 500 b, computational node500 c and computational node 500 d. In some examples, a possibleimplementation of computational nodes 500 a, 500 b, 500 c and 500 d maycomprise server 300 as described in FIG. 3. In some examples, a possibleimplementation of computational nodes 500 a, 500 b, 500 c and 500 d maycomprise computational node 500 as described in FIG. 5.

FIG. 4B is a block diagram illustrating a possible implementation ofcloud platform 400. In this example, cloud platform 400 may comprise:one or more computational nodes 500, one or more shared memory modules410, one or more power sources 240, one or more node registrationmodules 420, one or more load balancing modules 430, one or moreinternal communication modules 440, and one or more externalcommunication modules 450. In some implementations, cloud platform 400may comprise additional components, while some components listed abovemay be excluded. For example, in some implementations cloud platform 400may also comprise at least one of the following: one or more user inputdevices; one or more output devices; and so forth. In another example,in some implementations at least one of the following may be excludedfrom cloud platform 400: shared memory modules 410, power sources 240,node registration modules 420, load balancing modules 430, internalcommunication modules 440, and external communication modules 450.

FIG. 5 is a block diagram illustrating a possible implementation ofcomputational node 500. In this example, computational node 500 maycomprise: one or more memory units 210, one or more processing units220, one or more shared memory access modules 510, one or more powersources 240, one or more internal communication modules 440, and one ormore external communication modules 450. In some implementations,computational node 500 may comprise additional components, while somecomponents listed above may be excluded. For example, in someimplementations computational node 500 may also comprise at least one ofthe following: one or more user input devices; one or more outputdevices; and so forth. In another example, in some implementations atleast one of the following may be excluded from computational node 500:memory units 210, shared memory access modules 510, power sources 240,internal communication modules 440, and external communication modules450.

In some embodiments, internal communication modules 440 and externalcommunication modules 450 may be implemented as a combined communicationmodule, such as communication modules 230. In some embodiments, onepossible implementation of cloud platform 400 may comprise server 300.In some embodiments, one possible implementation of computational node500 may comprise server 300. In some embodiments, one possibleimplementation of shared memory access modules 510 may comprise usinginternal communication modules 440 to send information to shared memorymodules 410 and/or receive information from shared memory modules 410.In some embodiments, node registration modules 420 and load balancingmodules 430 may be implemented as a combined module.

In some embodiments, the one or more shared memory modules 410 may beaccessed by more than one computational node. Therefore, shared memorymodules 410 may allow information sharing among two or morecomputational nodes 500. In some embodiments, the one or more sharedmemory access modules 510 may be configured to enable access ofcomputational nodes 500 and/or the one or more processing units 220 ofcomputational nodes 500 to shared memory modules 410. In some examples,computational nodes 500 and/or the one or more processing units 220 ofcomputational nodes 500, may access shared memory modules 410, forexample using shared memory access modules 510, in order to perform atleast one of: executing software programs stored on shared memorymodules 410, store information in shared memory modules 410, retrieveinformation from the shared memory modules 410.

In some embodiments, the one or more node registration modules 420 maybe configured to track the availability of the computational nodes 500.In some examples, node registration modules 420 may be implemented as: asoftware program, such as a software program executed by one or more ofthe computational nodes 500; a hardware solution; a combined softwareand hardware solution; and so forth. In some implementations, noderegistration modules 420 may communicate with computational nodes 500,for example using internal communication modules 440. In some examples,computational nodes 500 may notify node registration modules 420 oftheir status, for example by sending messages: at computational node 500startup; at computational node 500 shutdown; at constant intervals; atselected times; in response to queries received from node registrationmodules 420; and so forth. In some examples, node registration modules420 may query about computational nodes 500 status, for example bysending messages: at node registration module 420 startup; at constantintervals; at selected times; and so forth.

In some embodiments, the one or more load balancing modules 430 may beconfigured to divide the work load among computational nodes 500. Insome examples, load balancing modules 430 may be implemented as: asoftware program, such as a software program executed by one or more ofthe computational nodes 500; a hardware solution; a combined softwareand hardware solution; and so forth. In some implementations, loadbalancing modules 430 may interact with node registration modules 420 inorder to obtain information regarding the availability of thecomputational nodes 500. In some implementations, load balancing modules430 may communicate with computational nodes 500, for example usinginternal communication modules 440. In some examples, computationalnodes 500 may notify load balancing modules 430 of their status, forexample by sending messages: at computational node 500 startup; atcomputational node 500 shutdown; at constant intervals; at selectedtimes; in response to queries received from load balancing modules 430;and so forth. In some examples, load balancing modules 430 may queryabout computational nodes 500 status, for example by sending messages:at load balancing module 430 startup; at constant intervals; at selectedtimes; and so forth.

In some embodiments, the one or more internal communication modules 440may be configured to receive information from one or more components ofcloud platform 400, and/or to transmit information to one or morecomponents of cloud platform 400. For example, control signals and/orsynchronization signals may be sent and/or received through internalcommunication modules 440. In another example, input information forcomputer programs, output information of computer programs, and/orintermediate information of computer programs, may be sent and/orreceived through internal communication modules 440. In another example,information received though internal communication modules 440 may bestored in memory units 210, in shared memory units 410, and so forth. Inan additional example, information retrieved from memory units 210and/or shared memory units 410 may be transmitted using internalcommunication modules 440. In another example, input data may betransmitted and/or received using internal communication modules 440.Examples of such input data may include input data inputted by a userusing user input devices.

In some embodiments, the one or more external communication modules 450may be configured to receive and/or to transmit information. Forexample, control signals may be sent and/or received through externalcommunication modules 450. In another example, information receivedthough external communication modules 450 may be stored in memory units210, in shared memory units 410, and so forth. In an additional example,information retrieved from memory units 210 and/or shared memory units410 may be transmitted using external communication modules 450. Inanother example, input data may be transmitted and/or received usingexternal communication modules 450. Examples of such input data mayinclude: input data inputted by a user using user input devices;information captured from the environment of apparatus 200 using one ormore sensors; and so forth. Examples of such sensors may include: audiosensors 250; image sensors 260; motion sensors 270; positioning sensors275; chemical sensors; temperature sensors; barometers; and so forth.

FIG. 6 illustrates an exemplary embodiment of memory 600 storing aplurality of modules. In some examples, memory 600 may be separate fromand/or integrated with memory units 210, separate from and/or integratedwith memory units 410, and so forth. In some examples, memory 600 may beincluded in a single device, for example in apparatus 200, in server300, in cloud platform 400, in computational node 500, and so forth. Insome examples, memory 600 may be distributed across several devices.Memory 600 may store more or fewer modules than those shown in FIG. 6.In this example, memory 600 may comprise: objects database 605,construction plans 610, as-built models 615, project schedules 620,financial records 625, progress records 630, safety records 635, andconstruction errors 640.

In some embodiments, objects database 605 may comprise informationrelated to objects associated with one or more construction sites. Forexample, the objects may include objects planned to be used in aconstruction site, objects ordered for a construction site, objectsarrived at a construction site and awaiting to be used and/or installed,objects used in a construction site, objects installed in a constructionsite, and so forth. In some examples, the information related to anobject in database 605 may include properties of the object, type,brand, configuration, dimensions, weight, price, supplier, manufacturer,identifier of related construction site, location (for example, withinthe construction site), time of planned arrival, time of actual arrival,time of usage, time of installation, actions need to be taken thatinvolves the object, actions performed using and/or on the object,people associated with the actions (such as persons that need to performan action, persons that performed an action, persons that monitor theaction, persons that approve the action, etc.), tools associated withthe actions (such as tools required to perform an action, tools used toperform the action, etc.), quality, quality of installation, otherobjects used in conjunction with the object, and so forth. In someexamples, elements in objects database 605 may be indexed and/orsearchable, for example using a database, using an indexing datastructure, and so forth.

In some embodiments, construction plans 610 may comprise documents,drawings, models, representations, specifications, measurements, bill ofmaterials, architectural plans, architectural drawings, floor plans, 2Darchitectural plans, 3D architectural plans, construction drawings,feasibility plans, demolition plans, permit plans, mechanical plans,electrical plans, space plans, elevations, sections, renderings,computer-aided design data, Building Information Modeling (BIM) models,and so forth, indicating design intention for one or more constructionsites and/or one or more portions of one or more construction sites.Construction plans 610 may be digitally stored in memory 600, asdescribed above.

In some embodiments, as-built models 615 may comprise documents,drawings, models, representations, specifications, measurements, list ofmaterials, architectural drawings, floor plans, 2D drawings, 3Ddrawings, elevations, sections, renderings, computer-aided design data,Building Information Modeling (BIM) models, and so forth, representingone or more buildings or spaces as they were actually constructed.As-built models 615 may be digitally stored in memory 600, as describedabove.

In some embodiments, project schedules 620 may comprise details ofplanned tasks, milestones, activities, deliverables, expected task starttime, expected task duration, expected task completion date, resourceallocation to tasks, linkages of dependencies between tasks, and soforth, related to one or more construction sites. Project schedules 620may be digitally stored in memory 600, as described above.

In some embodiments, financial records 625 may comprise information,records and documents related to financial transactions, invoices,payment receipts, bank records, work orders, supply orders, deliveryreceipts, rental information, salaries information, financial forecasts,financing details, loans, insurance policies, and so forth, associatedwith one or more construction sites. Financial records 625 may bedigitally stored in memory 600, as described above.

In some embodiments, progress records 630 may comprise information,records and documents related to tasks performed in one or moreconstruction sites, such as actual task start time, actual taskduration, actual task completion date, items used, item affected,resources used, results, and so forth. Progress records 630 may bedigitally stored in memory 600, as described above.

In some embodiments, safety records 635 may include information, recordsand documents related to safety issues (such as hazards, accidents, nearaccidents, safety related events, etc.) associated with one or moreconstruction sites. Safety records 635 may be digitally stored in memory600, as described above.

In some embodiments, construction errors 640 may include information,records and documents related to construction errors (such as executionerrors, divergence from construction plans, improper alignment of items,improper placement or items, improper installation of items, concrete oflow quality, missing item, excess item, and so forth) associated withone or more construction sites. Construction errors 640 may be digitallystored in memory 600, as described above.

In some embodiments, a method, such as methods 700, 900, 1100, 1200,1300, 1400, 1500, 1600, 1700, 1800 and 1900 may comprise of one or moresteps. In some examples, these methods, as well as all individual stepstherein, may be performed by various aspects of apparatus 200, server300, cloud platform 400, computational node 500, and so forth. Forexample, a system comprising of at least one processor, such asprocessing units 220, may perform any of these methods as well as allindividual steps therein, for example by processing units 220 executingsoftware instructions stored within memory units 210 and/or withinshared memory modules 410. In some examples, these methods, as well asall individual steps therein, may be performed by a dedicated hardware.In some examples, computer readable medium, such as a non-transitorycomputer readable medium, may store data and/or computer implementableinstructions for carrying out any of these methods as well as allindividual steps therein. Some non-limiting examples of possibleexecution manners of a method may include continuous execution (forexample, returning to the beginning of the method once the method normalexecution ends), periodically execution, executing the method atselected times, execution upon the detection of a trigger (somenon-limiting examples of such trigger may include a trigger from a user,a trigger from another process, a trigger from an external device,etc.), and so forth.

In some embodiments, machine learning algorithms (also referred to asmachine learning models in the present disclosure) may be trained usingtraining examples, for example by Step 720, Step 730, Step 930, Step940, Step 1120, Step 1220, Step 1320, Step 1420, Step 1430, Step 1520,Step 1530, Step 1720, Step 1820, Step 1830, and in the cases describedbelow. Some non-limiting examples of such machine learning algorithmsmay include classification algorithms, data regressions algorithms,image segmentation algorithms, visual detection algorithms (such asobject detectors, face detectors, person detectors, motion detectors,edge detectors, etc.), visual recognition algorithms (such as facerecognition, person recognition, object recognition, etc.), speechrecognition algorithms, mathematical embedding algorithms, naturallanguage processing algorithms, support vector machines, random forests,nearest neighbors algorithms, deep learning algorithms, artificialneural network algorithms, convolutional neural network algorithms,recursive neural network algorithms, linear machine learning models,non-linear machine learning models, ensemble algorithms, and so forth.For example, a trained machine learning algorithm may comprise aninference model, such as a predictive model, a classification model, aregression model, a clustering model, a segmentation model, anartificial neural network (such as a deep neural network, aconvolutional neural network, a recursive neural network, etc.), arandom forest, a support vector machine, and so forth. In some examples,the training examples may include example inputs together with thedesired outputs corresponding to the example inputs. Further, in someexamples, training machine learning algorithms using the trainingexamples may generate a trained machine learning algorithm, and thetrained machine learning algorithm may be used to estimate outputs forinputs not included in the training examples. In some examples,engineers, scientists, processes and machines that train machinelearning algorithms may further use validation examples and/or testexamples. For example, validation examples and/or test examples mayinclude example inputs together with the desired outputs correspondingto the example inputs, a trained machine learning algorithm and/or anintermediately trained machine learning algorithm may be used toestimate outputs for the example inputs of the validation examplesand/or test examples, the estimated outputs may be compared to thecorresponding desired outputs, and the trained machine learningalgorithm and/or the intermediately trained machine learning algorithmmay be evaluated based on a result of the comparison. In some examples,a machine learning algorithm may have parameters and hyper parameters,where the hyper parameters are set manually by a person or automaticallyby an process external to the machine learning algorithm (such as ahyper parameter search algorithm), and the parameters of the machinelearning algorithm are set by the machine learning algorithm accordingto the training examples. In some implementations, the hyper-parametersare set according to the training examples and the validation examples,and the parameters are set according to the training examples and theselected hyper-parameters.

In some embodiments, trained machine learning algorithms (also referredto as trained machine learning models in the present disclosure) may beused to analyze inputs and generate outputs, for example by Step 720,Step 730, Step 930, Step 940, Step 1120, Step 1220, Step 1320, Step1420, Step 1430, Step 1520, Step 1530, Step 1720, Step 1820, Step 1830,and in the cases described below. In some examples, a trained machinelearning algorithm may be used as an inference model that when providedwith an input generates an inferred output. For example, a trainedmachine learning algorithm may include a classification algorithm, theinput may include a sample, and the inferred output may include aclassification of the sample (such as an inferred label, an inferredtag, and so forth). In another example, a trained machine learningalgorithm may include a regression model, the input may include asample, and the inferred output may include an inferred value for thesample. In yet another example, a trained machine learning algorithm mayinclude a clustering model, the input may include a sample, and theinferred output may include an assignment of the sample to at least onecluster. In an additional example, a trained machine learning algorithmmay include a classification algorithm, the input may include an image,and the inferred output may include a classification of an item depictedin the image. In yet another example, a trained machine learningalgorithm may include a regression model, the input may include animage, and the inferred output may include an inferred value for an itemdepicted in the image (such as an estimated property of the item, suchas size, volume, age of a person depicted in the image, cost of aproduct depicted in the image, and so forth). In an additional example,a trained machine learning algorithm may include an image segmentationmodel, the input may include an image, and the inferred output mayinclude a segmentation of the image. In yet another example, a trainedmachine learning algorithm may include an object detector, the input mayinclude an image, and the inferred output may include one or moredetected objects in the image and/or one or more locations of objectswithin the image. In some examples, the trained machine learningalgorithm may include one or more formulas and/or one or more functionsand/or one or more rules and/or one or more procedures, the input may beused as input to the formulas and/or functions and/or rules and/orprocedures, and the inferred output may be based on the outputs of theformulas and/or functions and/or rules and/or procedures (for example,selecting one of the outputs of the formulas and/or functions and/orrules and/or procedures, using a statistical measure of the outputs ofthe formulas and/or functions and/or rules and/or procedures, and soforth).

In some embodiments, artificial neural networks may be configured toanalyze inputs and generate corresponding outputs, for example by Step720, Step 730, Step 930, Step 940, Step 1120, and in the cases describedbelow. Some non-limiting examples of such artificial neural networks maycomprise shallow artificial neural networks, deep artificial neuralnetworks, feedback artificial neural networks, feed forward artificialneural networks, autoencoder artificial neural networks, probabilisticartificial neural networks, time delay artificial neural networks,convolutional artificial neural networks, recurrent artificial neuralnetworks, long short term memory artificial neural networks, and soforth. In some examples, an artificial neural network may be configuredmanually. For example, a structure of the artificial neural network maybe selected manually, a type of an artificial neuron of the artificialneural network may be selected manually, a parameter of the artificialneural network (such as a parameter of an artificial neuron of theartificial neural network) may be selected manually, and so forth. Insome examples, an artificial neural network may be configured using amachine learning algorithm. For example, a user may selecthyper-parameters for the an artificial neural network and/or the machinelearning algorithm, and the machine learning algorithm may use thehyper-parameters and training examples to determine the parameters ofthe artificial neural network, for example using back propagation, usinggradient descent, using stochastic gradient descent, using mini-batchgradient descent, and so forth. In some examples, an artificial neuralnetwork may be created from two or more other artificial neural networksby combining the two or more other artificial neural networks into asingle artificial neural network.

In some embodiments, analyzing image data (for example by the methods,steps and modules described herein, such as Step 720, Step 730, Step930, Step 940, Step 1120, Step 1220, Step 1320, Step 1420, Step 1430,Step 1520, Step 1530, Step 1720, Step 1820, Step 1830, Step 1902, Step1910, Step 1916, Step 1922, Step 1928, and so forth) may compriseanalyzing the image data to obtain a preprocessed image data, andsubsequently analyzing the image data and/or the preprocessed image datato obtain the desired outcome. Some non-limiting examples of such imagedata may include one or more images, videos, frames, footages, 2D imagedata, 3D image data, and so forth. One of ordinary skill in the art willrecognize that the followings are examples, and that the image data maybe preprocessed using other kinds of preprocessing methods. In someexamples, the image data may be preprocessed by transforming the imagedata using a transformation function to obtain a transformed image data,and the preprocessed image data may comprise the transformed image data.For example, the transformed image data may comprise one or moreconvolutions of the image data. For example, the transformation functionmay comprise one or more image filters, such as low-pass filters,high-pass filters, band-pass filters, all-pass filters, and so forth. Insome examples, the transformation function may comprise a nonlinearfunction. In some examples, the image data may be preprocessed bysmoothing at least parts of the image data, for example using Gaussianconvolution, using a median filter, and so forth. In some examples, theimage data may be preprocessed to obtain a different representation ofthe image data. For example, the preprocessed image data may comprise: arepresentation of at least part of the image data in a frequency domain;a Discrete Fourier Transform of at least part of the image data; aDiscrete Wavelet Transform of at least part of the image data; atime/frequency representation of at least part of the image data; arepresentation of at least part of the image data in a lower dimension;a lossy representation of at least part of the image data; a losslessrepresentation of at least part of the image data; a time ordered seriesof any of the above; any combination of the above; and so forth. In someexamples, the image data may be preprocessed to extract edges, and thepreprocessed image data may comprise information based on and/or relatedto the extracted edges. In some examples, the image data may bepreprocessed to extract image features from the image data. Somenon-limiting examples of such image features may comprise informationbased on and/or related to: edges; corners; blobs; ridges; ScaleInvariant Feature Transform (SIFT) features; temporal features; and soforth.

In some embodiments, analyzing image data (for example by the methods,steps and modules described herein, such as Step 720, Step 730, Step930, Step 940, Step 1120, Step 1220, Step 1320, Step 1420, Step 1430,Step 1520, Step 1530, Step 1720, Step 1820, Step 1830, Step 1902, Step1910, Step 1916, Step 1922, Step 1928, and so forth) may compriseanalyzing the image data and/or the preprocessed image data using one ormore rules, functions, procedures, artificial neural networks, objectdetection algorithms, face detection algorithms, visual event detectionalgorithms, action detection algorithms, motion detection algorithms,background subtraction algorithms, inference models, and so forth. Somenon-limiting examples of such inference models may include: an inferencemodel preprogrammed manually; a classification model; a regressionmodel; a result of training algorithms, such as machine learningalgorithms and/or deep learning algorithms, on training examples, wherethe training examples may include examples of data instances, and insome cases, a data instance may be labeled with a corresponding desiredlabel and/or result; and so forth.

In some embodiments, analyzing image data (for example by the methods,steps and modules described herein, such as Step 720, Step 730, Step930, Step 940, Step 1120, Step 1220, Step 1320, Step 1420, Step 1430,Step 1520, Step 1530, Step 1720, Step 1820, Step 1830, Step 1902, Step1910, Step 1916, Step 1922, Step 1928, and so forth) may compriseanalyzing pixels, voxels, point cloud, range data, etc. included in theimage data.

FIG. 7 illustrates an example of a method 700 for determining thequality of concrete from construction site images. In this example,method 700 may comprise: obtaining image data captured from aconstruction site (Step 710); analyzing the image data to identify aregion depicting an object of an object type and made of concrete (Step720); analyzing the image data to determine a quality indicationassociated with concrete (Step 730); selecting a threshold (Step 740);and comparing the quality indication with the selected threshold (Step750). Based, at least in part, on the result of the comparison, process700 may provide an indication to a user (Step 760). In someimplementations, method 700 may comprise one or more additional steps,while some of the steps listed above may be modified or excluded. Forexample, Step 720 and/or Step 740 and/or Step 750 and/or Step 760 may beexcluded from method 700. In some implementations, one or more stepsillustrated in FIG. 7 may be executed in a different order and/or one ormore groups of steps may be executed simultaneously and vice versa. Forexample, Step 720 may be executed after and/or simultaneously with Step710, Step 730 may be executed after and/or simultaneously with Step 710,Step 730 may be executed before, after and/or simultaneously with Step720, Step 740 may be executed at any stage before Step 750, and soforth.

In some embodiments, obtaining image data captured from a constructionsite (Step 710) may comprise obtaining image data captured from aconstruction site using at least one image sensor, such as image sensors260. In some examples, obtaining the images may comprise capturing theimage data from the construction site. Some non-limiting examples ofimage data may include: one or more images; one or more portions of oneor more images; sequence of images; one or more video clips; one or moreportions of one or more video clips; one or more video streams; one ormore portions of one or more video streams; one or more 3D images; oneor more portions of one or more 3D images; sequence of 3D images; one ormore 3D video clips; one or more portions of one or more 3D video clips;one or more 3D video streams; one or more portions of one or more 3Dvideo streams; one or more 360 images; one or more portions of one ormore 360 images; sequence of 360 images; one or more 360 video clips;one or more portions of one or more 360 video clips; one or more 360video streams; one or more portions of one or more 360 video streams;information based, at least in part, on any of the above; anycombination of the above; and so forth.

In some examples, Step 710 may comprise obtaining image data capturedfrom a construction site (and/or capturing the image data from theconstruction site) using at least one wearable image sensor, such aswearable version of apparatus 200 and/or wearable version of imagesensor 260. For example, the wearable image sensors may be configured tobe worn by construction workers and/or other persons in the constructionsite. For example, the wearable image sensor may be physically connectedand/or integral to a garment, physically connected and/or integral to abelt, physically connected and/or integral to a wrist strap, physicallyconnected and/or integral to a necklace, physically connected and/orintegral to a helmet, and so forth.

In some examples, Step 710 may comprise obtaining image data capturedfrom a construction site (and/or capturing the image data from theconstruction site) using at least one stationary image sensor, such asstationary version of apparatus 200 and/or stationary version of imagesensor 260. For example, the stationary image sensors may be configuredto be mounted to ceilings, to walls, to doorways, to floors, and soforth. For example, a stationary image sensor may be configured to bemounted to a ceiling, for example substantially at the center of theceiling (for example, less than two meters from the center of theceiling, less than one meter from the center of the ceiling, less thanhalf a meter from the center of the ceiling, and so forth), adjunct toan electrical box in the ceiling, at a position in the ceilingcorresponding to a planned connection of a light fixture to the ceiling,and so forth. In another example, two or more stationary image sensorsmay be mounted to a ceiling in a way that ensures that the fields ofview of the two cameras include all walls of the room.

In some examples, Step 710 may comprise obtaining image data capturedfrom a construction site (and/or capturing the image data from theconstruction site) using at least one mobile image sensor, such asmobile version of apparatus 200 and/or mobile version of image sensor260. For example, mobile image sensors may be operated by constructionworkers and/or other persons in the construction site to capture imagedata of the construction site. In another example, mobile image sensorsmay be part of a robot configured to move through the construction siteand capture image data of the construction site. In yet another example,mobile image sensors may be part of a drone configured to fly throughthe construction site and capture image data of the construction site.

In some examples, Step 710 may comprise, in addition or alternatively toobtaining image data and/or other input data, obtaining motioninformation captured using one or more motion sensors, for example usingmotion sensors 270. Examples of such motion information may include:indications related to motion of objects; measurements related to thevelocity of objects; measurements related to the acceleration ofobjects; indications related to motion of motion sensor 270;measurements related to the velocity of motion sensor 270; measurementsrelated to the acceleration of motion sensor 270; information based, atleast in part, on any of the above; any combination of the above; and soforth.

In some examples, Step 710 may comprise, in addition or alternatively toobtaining image data and/or other input data, obtaining positioninformation captured using one or more positioning sensors, for exampleusing positioning sensors 275. Examples of such position information mayinclude: indications related to the position of positioning sensors 275;indications related to changes in the position of positioning sensors275; measurements related to the position of positioning sensors 275;indications related to the orientation of positioning sensors 275;indications related to changes in the orientation of positioning sensors275; measurements related to the orientation of positioning sensors 275;measurements related to changes in the orientation of positioningsensors 275; information based, at least in part, on any of the above;any combination of the above; and so forth.

In some embodiments, Step 710 may comprise receiving input data usingone or more communication devices, such as communication modules 230,internal communication modules 440, external communication modules 450,and so forth. Examples of such input data may include: input datacaptured using one or more sensors; image data captured using imagesensors, for example using image sensors 260; motion informationcaptured using motion sensors, for example using motion sensors 270;position information captured using positioning sensors, for exampleusing positioning sensors 275; and so forth.

In some embodiments, Step 710 may comprise reading input data frommemory units, such as memory units 210, shared memory modules 410, andso forth. Examples of such input data may include: input data capturedusing one or more sensors; image data captured using image sensors, forexample using image sensors 260; motion information captured usingmotion sensors, for example using motion sensors 270; positioninformation captured using positioning sensors, for example usingpositioning sensors 275; and so forth.

In some embodiments, analyzing the image data to identify a regiondepicting an object of an object type and made of concrete (Step 720)may comprise analyzing image data (such as image data captured from aconstruction site using at least one image sensor and obtained by Step710) and/or preprocessed image data to identify a region of the imagedata depicting at least part of an object, wherein the object is of anobject type and made, at least partly, of concrete. In one example,multiple regions may be identified, depicting multiple such objects of asingle object type and made, at least partly, of concrete. In anotherexample, multiple regions may be identified, depicting multiple suchobjects of a plurality of object types and made, at least partly, ofconcrete. In some examples, an identified region of the image data maycomprise rectangular region of the image data containing a depiction ofat least part of the object, map of pixels of the image data containinga depiction of at least part of the object, a single pixel of the imagedata within a depiction of at least part of the object, a continuoussegment of the image data including a depiction of at least part of theobject, a non-continuous segment of the image data including a depictionof at least part of the object, and so forth.

In some examples, the image data may be preprocessed to identify colorsand/or textures within the image data, and a rule for detecting concretebased, at least in part, on the identified colors and/or texture may beused. For example, local histograms of colors and/or textures may beassembled, and concrete may be detected when the assembled histogramsmeet predefined criterions. In some examples, the image data may beprocessed with an inference model to detect regions of concrete. Forexample, the inference model may be a result of a machine learningand/or deep learning algorithm trained on training examples. A trainingexample may comprise example images together with markings of regionsdepicting concrete in the images. The machine learning and/or deeplearning algorithms may be trained using the training examples toidentify images depicting concrete, to identify the regions within theimages that depict concrete, and so forth.

In some examples, the image data may be processed using object detectionalgorithms to identify objects made of concrete, for example to identifyobjects made of concrete of a selected object type. Some non-limitingexamples of such object detection algorithms may include: appearancebased object detection algorithms, gradient based object detectionalgorithms, gray scale object detection algorithms, color based objectdetection algorithms, histogram based object detection algorithms,feature based object detection algorithms, machine learning based objectdetection algorithms, artificial neural networks based object detectionalgorithms, 2D object detection algorithms, 3D object detectionalgorithms, still image based object detection algorithms, video basedobject detection algorithms, and so forth.

In some examples, Step 720 may further comprise analyzing the image datato determine at least one property related to the detected concrete,such as a size of the surface made of concrete, a color of the concretesurface, a position of the concrete surface (for example based, at leastin part, on the position information and/or motion information obtainedby Step 710), a type of the concrete surface, and so forth. For example,a histogram of the pixel colors and/or gray scale values of theidentified regions of concrete may be generated. In another example, thesize in pixels of the identified regions of concrete may be calculated.In yet another example, the image data may be analyzed to identify atype of the concrete surface, such as an object type (for example, awall, a ceiling, a floor, a stair, and so forth). For example, the imagedata and/or the identified region of the image data may be analyzedusing an inference model configured to determine the type of surface(such as an object type). The inference model may be a result of amachine learning and/or deep learning algorithm trained on trainingexamples. A training example may comprise example images and/or imageregions together with a label describing the type of concrete surface(such as an object type). The inference model may be applied to newimages and/or image regions to determine the type of the surface (suchas an object type).

In some examples, Step 720 may comprise analyzing a construction plan610 associated with the construction site to determine the object typeof the object. For example, the construction plan may be analyzed toidentify an object type specified for an object in the constructionplan, for example based on a position of the object in the constructionsite.

In some examples, Step 720 may comprise analyzing an as-build model 615associated with the construction site to determine the object type ofthe object. For example, the as-build model may be analyzed to identifyan object type specified for an object in the as-build model, forexample based on a position of the object in the construction site.

In some examples, Step 720 may comprise analyzing a project schedule 620associated with the construction site to determine the object type ofthe object. For example, the project schedule may be analyzed toidentify objects of what object types should be in the construction site(or in parts of the construction site) at a certain time (for example,the capturing time of the image data) according to the project schedule.

In some examples, Step 720 may comprise analyzing financial records 625associated with the construction site to determine the object type ofthe object. For example, the financial records may be analyzed toidentify objects of what object types should be in the construction site(or in parts of the construction site) at a certain time (for example,the capturing time of the image data) according to the deliveryreceipts, invoices, purchase orders, and so forth.

In some examples, Step 720 may comprise analyzing progress records 630associated with the construction site to determine the object type ofthe object. For example, the progress records may be analyzed toidentify objects of what object types should be in the construction site(or in parts of the construction site) at a certain time (for example,the capturing time of the image data) according to the progress records.

In some examples, the image data may be analyzed to determine the objecttype of the object of Step 720. For example, the image data may beanalyzed using a machine learning model trained using training examplesto determine object type of an object from one or more images depictingthe object (and/or any other input described above). In another example,the image data may be analyzed by an artificial neural networkconfigured to determine object type of an object from one or more imagesdepicting the object (and/or any other input described above).

In some embodiments, Step 730 may comprise analyzing image data (such asimage data captured from a construction site using at least one imagesensor and obtained by Step 710) and/or preprocessed image data todetermine one or more quality indications associated with the concrete(for example, with concrete depicted in image data captured using Step710, with concrete depicted in regions identified using Step 720, withthe concrete that the object of Step 720 is made of, and so forth). Insome examples, the quality indications may comprise a discrete grade, acontinuous grade, a pass/no pass grade, a degree, a measure, acomparison, and so forth. For example, the quality indication maycomprise an indication of a durability of the concrete. In anotherexample, the quality indication may comprise an indication of strengthof the concrete. In yet another example, the quality indication maycomprise an estimate of a result of a compressive strength testconducted after a selected curing time (such as 28 days, 30 days, 56days, 60 days, one month, two months, and so forth). In another example,the quality indication may comprise an estimate of a result of a waterpermeability test. In yet another example, the quality indication maycomprise an estimate of a result of a rapid chloride ion penetrationtest. In another example, the quality indication may comprise anestimate of a result of a water absorption test. In yet another example,the quality indication may comprise an estimate of a result of aninitial surface absorption test. In some examples, the image data may beanalyzed to identify a condition of the concrete, for example where thecondition of the concrete may comprise at least one of segregation ofthe concrete, discoloration of the concrete, scaling of the concrete,crazing of the concrete, cracking of the concrete, and curling of theconcrete. Further, the determination of the quality indication may bebased, at least in part, on the identified condition of the concrete.

In some embodiments, Step 730 may analyze the image data using aninference model to determine quality indications associated withconcrete. For example, the inference model may be a result of a machinelearning and/or deep learning algorithm trained on training examples. Atraining example may comprise example images and/or image regionsdepicting concrete together with desired quality indications. Themachine learning and/or deep learning algorithms may be trained usingthe training examples to generate an inference model that automaticallyproduced quality indications from images of concrete. In some examples,the training examples may comprise images of concrete together with ameasure of the durability of the concrete and/or a measure of thestrength of the concrete (for example as determined by a test conductedon the concrete after the image was captured, as determined by a testconducted on a sample of the concrete, as determined by an expert,etc.), and the machine learning and/or deep learning algorithms may betrained using the training examples to generate an inference model thatautomatically produce a measure of the durability of the concrete and/ora measure of the strength of the concrete from images of concrete. Insome examples, the training examples may comprise images of concretetogether with a result of a test conducted on the concrete after theimage was captured or on a sample of the concrete (such as compressivestrength test, water permeability test, rapid chloride ion penetrationtest, water absorption test, initial surface absorption test, etc.), andthe machine learning and/or deep learning algorithms may be trainedusing the training examples to generate an inference model thatautomatically estimate the result of the test from images of concrete.The above tests may be performed after a selected curing time of theconcrete, such as a day, 36 hours, a week, 28 days, a month, 60 days,less than 30 days, less than 60 days, less than 90 days, more than 28days, more than 56 days, more than 84 days, any combinations of theabove, and so forth. In some examples, the training examples maycomprise images of concrete together with a label indicating a conditionof the concrete (such as ordinary condition, segregation of theconcrete, discoloration of the concrete, scaling of the concrete,crazing of the concrete, cracking of the concrete, curling of theconcrete, etc.), the machine learning and/or deep learning algorithmsmay be trained using the training examples to generate an inferencemodel that automatically identify the condition of concrete from imagesof concrete, and the quality indications may comprise the automaticallyidentified condition of the concrete and/or information based (at leastin part) on the automatically identified condition of the concrete.

In some embodiments, Step 730 may analyze the image data using heuristicrules to determine quality indications associate with concrete. In someexamples, histograms based, at least in part, on the image data and/orregions of the image data may be generated. For example, such histogramsmay comprise histograms of pixel colors, of gray scale values, of imagegradients, of image edges, of image corners, of low level imagefeatures, and so forth. Further, heuristic rules may be used to analyzethe histograms and determine quality indications associate withconcrete. For example, a heuristic rule may specify thresholds fordifferent bins of the histogram, and the heuristic rule may determinethe quality indications associate with concrete based, at least in part,on a comparison of the histogram bin values with the correspondingthresholds, for example by counting the number of bin values that exceedthe corresponding threshold. In some examples, the above thresholds maybe selected based, at least in part, on the type of concrete surface(for example as determined by Step 720), for example using one set ofthreshold values for walls, a second set of threshold values forceilings, a third set of threshold values for stairs, and so forth.

In some embodiments, selecting a threshold (Step 740) may comprise usingthe object type of an object (for example, the object of Step 720) toselect a threshold. For example, in response to a first object type, afirst threshold value may be selected, and in response to a secondobject type, a second threshold value different from the first thresholdvalue may be selected. For example, a lookup table (for example in adatabase) may be used to select a threshold according to an object type.In another example, a regression model configured to take as inputproperties of the object type and calculate a threshold value using theproperties of the object type may be used to select a thresholdaccording to an object type.

In some examples, the selection of the threshold by Step 740 may bebased, at least in part, on quality indications associated with otherobjects. For example, the threshold may be selected to be a function ofthe quality indications associated with the other objects, such as mean,median, mode, minimum, maximum, value that cut the quality indicationsassociated with the other objects to two groups of selected sizes, andso forth. In another example, a distribution of the quality indicationsassociated with other objects may be estimated (for example, using aregression model, using density estimation algorithms, and so forth),and the threshold may be selected to be a function of the estimateddistribution, such as mean, median, standard deviation, variance,coefficient of variation, coefficient of dispersion, a parameter of thebeta-binomial distribution, a property of the distribution (such as amoment of the distribution), any function of the above, and so forth.For example, the distribution may be estimated to as a beta-binomialdistribution, a Wallenius' noncentral hypergeometric distribution, andso forth.

In some examples, the selection of the threshold by Step 740 may bebased, at least in part, on a construction plan associated with theconstruction site. For example, the construction plan may be analyzed toidentify minimal quality indication requirements for one or more objectsmade of concrete, and the threshold may be selected accordingly. In oneexample, the minimal quality indication requirement may be specified inthe construction plan, may be a requirement (such as a legalrequirement, an ordinance requirement, a regulative requirement, anindustry standard requirement, etc.) due to a specific object orconfiguration in the construction plan, and so forth.

In some examples, the object may be within a floor, and the selection ofthe threshold by Step 740 may be based, at least in part, on the floor.For example, the selection of the threshold may be based, at least inpart, on the floor number, the floor height, properties of the floor,and so forth. For example, for an object positioned in a specifiedfloor, a first threshold may be selected, while for an identical orsimilar object positioned in a different specified floor, a secondthreshold different from the first threshold may be selected. Further,the object may be within a building with a number of floors, and theselection of the threshold by Step 740 may be based, at least in part,on the number of floors, on the build height, on properties of thebuilding, and so forth. For example, for an object positioned in aspecified building, a first threshold may be selected, while for anidentical or similar object positioned in a different specifiedbuilding, a second threshold different from the first threshold may beselected. For example, a lookup table (for example in a database) may beused to select a threshold according to properties associated with thefloor and/or the building. In another example, a regression modelconfigured to take as input properties of the floor and/or the buildingand calculate a threshold value using the properties of the floor and/orthe building type may be used to select a threshold according to thefloor and/or the building.

In some examples, the selection of the threshold by Step 740 may bebased, at least in part, on a beam span. For example, for an objectassociated with a first beam span, a first threshold may be selected,while for an identical or similar object associated with a second beamspan, a second threshold different from the first threshold may beselected. For example, the beam span may be compared with a selectedlength, and the selection of the threshold may be based, at least inpart, on a result of the comparison. In another example, a regressionmodel configured to take as input beam span and calculate a thresholdvalue using the beam span may be used to select a threshold according tothe beam span.

In some examples, when the object is a wall of a stairway, the thresholdmay be selected by Step 740 to be a first value, and when the object isa wall not in a stairway, the threshold may be selected by Step 740 tobe a value different than the first value. In some examples, when theobject is part of a lift shaft, the threshold may be selected by Step740 to be a first value, and when the object is not part of a liftshaft, the threshold may be selected by Step 740 to be a value differentthan the first value.

In some examples, the selection of the threshold by Step 740 may bebased, at least in part, on multiple factors. For example, a baselinethreshold may be selected according to an object type as describedabove. Further, in some examples the threshold may be increased ordecreased (for example, by adding or subtracting a selected value, bymultiplying by a selected factor, and so forth) according to at leastone of quality indications associated with other objects in theconstruction site, a construction plan associated with the constructionsite, the floor (for example, properties of the floor as describedabove), the building (for example, properties of the building asdescribed above), and so forth.

In some embodiments, Step 750 may comprise comparing the qualityindication with the selected threshold. For example, a differencebetween a value of the quality indication and the selected threshold maybe calculated. In another example, it may be determined whether thequality indication is higher than the selected threshold or not. In someexamples, an action may be performed based on a result of the comparisonof the quality indication with the selected threshold. For example, inresponse to a first result of the comparison, an action may beperformed, and in response to a second result of the comparison, theperformance of the action may be forgone. In another example, inresponse to a first result of the comparison, a first action may beperformed, and in response to a second result of the comparison, asecond action (different from the first action) may be performed. Somenon-limiting examples of such actions may include providing anindication to a user (as described below in relation to Step 760),updating an electronic record (for example as described below inrelation to Step 1130), and so forth.

In some embodiments, Step 760 may comprise providing an indication to auser, for example based, at least in part, on the quality indication(from Step 730) and/or the selected threshold (from Step 740) and/or theresult of the comparison of the quality indication with the selectedthreshold (from Step 750). For example, in response to a first result ofthe comparison, an indication may be provided to the user, and inresponse to a second result of the comparison, the providence of theindication may be forgone. In another example, in response to a firstresult of the comparison, a first indication may be provided to theuser, and in response to a second result of the comparison, a secondindication (different from the first indication) may be provided to theuser. In some examples, the provided indication may comprise apresentation of at least part of the image data with an overlaypresenting information based, at least in part, on the qualityindication (for example, using a display screen, an augmented realitydisplay system, a printer, and so forth). In some examples, indicationsmay be provided to the user when a quality indication fails to meet someselected criterions, when a quality indication do meet some selectedcriterions, and so forth. In some examples, the nature and/or content ofthe indication provided to the user may depend on the quality indicationand/or the region of the image corresponding to the quality indicationsand/or the objects corresponding to the quality indications and/orproperties of the objects (such as position, size, color, object type,and so forth) corresponding to the quality indications. In someexamples, the indications provided to the user may be provided as a:visual output, audio output, tactile output, any combination of theabove, and so forth. In some examples, the amount of indicationsprovided to the user, the events triggering the indications provided tothe user, the content of the indications provided to the user, thenature of the indications provided to the user, etc., may beconfigurable. The indications provided to the user may be provided: bythe apparatus detecting the events, through another apparatus (such as amobile device associated with the user, mobile phone 111, tablet 112,and personal computer 113, etc.), and so forth.

In some embodiments, Step 720 may identify a plurality of regionsdepicting concrete in the image data obtained by Step 710. For eachidentified region, Step 730 may determine quality indications for theconcrete depicted in the region. The quality indications of thedifferent regions may be compared, and information may be presented to auser based, at least in part, on the result of the comparison, forexample as described below. For example, Step 710 may obtain an image ofa staircase made of concrete, Step 720 may identify a region for eachstair, Step 730 may assign quality measure for the concrete of eachstair, the stair corresponding to the lowest quality measure may beidentified, and the identified lowest quality measure may be presentedto the user, for example as an overlay next to the region of the stairin the image. In another example, Step 710 may obtain a 360 degreesimage of a room made of concrete, Step 720 may identify a region foreach wall, Step 730 may assign quality measure for the concrete of eachwall, the wall corresponding to the lowest quality measure may beidentified, and the identified lowest quality measure may be presentedto the user, for example as an overlay on the region of the wall in theimage. In yet another example, Step 710 may obtain video depictingconcrete pillars, Step 720 may identify a frame and/or a region for eachpillar, Step 730 may assign quality measure for the concrete of eachpillar, a selected number of pillars corresponding to the highestquality measures may be identified, and the identified highest qualitymeasures and/or corresponding pillars may be presented to the user.

In some embodiments, Step 720 may identify a region depicting concretein the image data obtained by Step 710, and Step 730 may determinequality indications for the concrete depicted in the region. The qualityindications may be compared with selected thresholds, and informationmay be presented to a user based, at least in part, on the result of thecomparison, for example as described below. In some examples, the abovethresholds may be selected based, at least in part, on the type ofconcrete surface (such as an object type, for example as determined byStep 720), for example using one thresholds for wall, a second thresholdfor ceilings, a third threshold for stairs, and so forth. For example, aquality indication may comprise a measure of the durability of theconcrete and/or a measure of the strength of the concrete, the qualityindication may be compared with a threshold corresponding to a minimaldurability requirement and/or a minimal strength requirement, and anindication may be provided to the user when the measure of durabilityand/or the measure of strength does not meet the minimal requirement. Inanother example, a quality indication may comprise an estimated resultof a test (such as compressive strength test, water permeability test,rapid chloride ion penetration test, water absorption test, initialsurface absorption test, etc.), the quality indication may be comparedwith a threshold corresponding to minimal requirement (for exampleaccording to a standard or regulation), and an indication may beprovided to the user when the estimated result of the test does not meetthe minimal requirement.

FIG. 8 is a schematic illustration of example image 800 captured by anapparatus, such as apparatus 200. Image 800 may depict some objects madeof concrete, such as surface 810, stair 820, stair 830, and wall 840.Method 700 may obtain image 800 using Step 710. As described above, Step720 may identify regions of image 800 depicting objects made ofconcrete, such as concrete surface 810, concrete stair 820, concretestair 830, and concrete wall 840. As described above, Step 730 maydetermine quality indications associated with concrete surface 810,concrete stair 820, concrete stair 830, and concrete wall 840.Information may be provided to a user based, at least in part, on theidentified regions and/or determined quality indications. For example,image 800 may be presented to a user with an overlay specifying theidentified regions and/or determined quality indications. Further, thedetermined quality indications may be compared with selected thresholds,and based on the results of the comparisons, some information may beomitted from the presentation, some information may be presented usingfirst presentation settings (such as font type, font color, font size,background color, emphasis, contrast, transparency, etc.) while otherinformation may be presented using other presentation settings, and soforth. In addition or alternatively to the presentation of image 800, atextual report specifying the identified regions and/or determinedquality indications may be provided to the user.

FIG. 9 illustrates an example of a method 900 for providing informationbased on construction site images. In this example, method 900 maycomprise: obtaining image data captured from a construction site (Step710), obtaining electronic records associated with the construction site(Step 920), analyzing the image data to identify discrepancies betweenthe construction site and the electronic records (Step 930), andproviding information based on the identified discrepancies (Step 940).In some implementations, method 900 may comprise one or more additionalsteps, while some of the steps listed above may be modified or excluded.For example, Step 940 may be excluded from method 900. In someimplementations, one or more steps illustrated in FIG. 9 may be executedin a different order and/or one or more groups of steps may be executedsimultaneously and vice versa. For example, Step 920 may be executedbefore and/or after and/or simultaneously with Step 710, Step 930 may beexecuted after and/or simultaneously with Step 710 and/or Step 920, Step940 may be executed after and/or simultaneously with Step 930, and soforth.

In some embodiments, in Step 920 at least one electronic recordassociated with a construction site may be obtained. For example, the atleast one electronic record obtained by Step 920 may compriseinformation related to objects associated with the construction site,such as objects database 605. In some examples, Step 920 may compriseobtaining at least one electronic construction plan associated with theconstruction site, for example from construction plans 610. In someexamples, Step 920 may comprise obtaining at least one electronicas-built model associated with the construction site, for example fromas-built models 615. In some examples, Step 920 may comprise obtainingat least one electronic project schedule associated with theconstruction site, for example from project schedules 620. In someexamples, Step 920 may comprise obtaining at least one electronicfinancial record associated with the construction site, for example fromfinancial records 625. In some examples, Step 920 may comprise obtainingat least one electronic progress record associated with the constructionsite, for example from progress records 630. In some examples, Step 920may comprise obtaining information related to at least one safety issueassociated with the construction site, for example from safety records635. In some examples, Step 920 may comprise obtaining informationrelated to at least one construction error associated with theconstruction site, for example from construction errors 640.

In some examples, Step 920 may comprise receiving the at least oneelectronic record associated with a construction site using one or morecommunication devices, such as communication modules 230, internalcommunication modules 440, external communication modules 450, and soforth. In some examples, Step 920 may comprise reading the at least oneelectronic record associated with a construction site from memory units,such as memory units 210, shared memory modules 410, and so forth. Insome examples, Step 920 may comprise obtaining information related to atleast one object associated with the construction site, for example fromobjects database 605, by analyzing image data depicting the object inthe construction site (for example using Step 1120 as described below),by analyzing electronic records comprising information about the objectas described below, and so forth. In some examples, Step 920 maycomprise creating the at least one electronic record associated with aconstruction site, for example by using any the methods describedherein. For example, electronic records comprising information relatedto objects in the construction site and made of concrete may be obtainedby using method 700. In another example, electronic records comprisinginformation related to discrepancies between the construction site andother electronic records may be obtained by using method 900. In yetanother example, electronic records comprising information related toobjects in the construction site may be obtained by using method 1100.

In some embodiments, Step 930 may analyze image data captured from aconstruction site (such as image data captured from the constructionsite using at least one image sensor and obtained by Step 710) toidentify at least one discrepancy between at least one electronic recordassociated with the construction site (such as the at least oneelectronic record obtained by Step 920) and the construction site. Insome examples, Step 930 may analyze the at least one electronic recordand/or the image data using a machine learning model trained usingtraining examples to identify discrepancies between the at least oneelectronic record and the construction site. For example, a trainingexample may comprise an electronic record and image data with acorresponding label detailing discrepancies between the electronicrecord and the construction site. In some examples, Step 930 may analyzethe at least one electronic record and the image data using anartificial neural network configured to identify discrepancies betweenthe at least one electronic record and the construction site.

In some examples, when the at least one electronic record comprises aconstruction plan associated with the construction site (such asconstruction plan 610, construction plan obtained by Step 920, etc.),Step 930 may identify at least one discrepancy between the constructionplan and the construction site. For example, Step 930 may analyze theconstruction plan and/or the image data to identify an object in theconstruction plan that does not exist in the construction site, toidentify an object in the construction site that does not exist in theconstruction plan, to identify an object that has a specified locationaccording to the construction plan and is located at a differentlocation in the construction site (for example, to identify an objectfor which the discrepancy between the location according to theconstruction plan and the location in the construction site is above aselected threshold), to identify an object that should have a specifiedproperty according to the construction plan but has a different propertyin the construction site (some non-limiting examples of such propertymay include type of the object, location of the object, shape of theobject, dimensions of the object, color of the object, manufacturer ofthe object, type of elements in the object, setting of the object,technique of installation of the object, orientation of the object, timeof object installment, etc.), to identify an object that should beassociated with a specified quantity according to the construction planbut is associated with a different quantity in the construction site(some non-limiting examples of such quantities may include size of theobject, dimensions of the object, number of elements in the object,etc.), and so forth. For example, the image data may be analyzed todetect objects and/or to determine properties of the detected objects(for example, using Step 1120 as described below), the detected objectsmay be searched in the construction plan (for example using thedetermined properties), and Step 930 may identify objects detect in theimage data that are not found in the construction plan as adiscrepancies. In another example, the construction plan may be analyzedto identify objects and/or properties of the identified objects, theidentified objects may be searched in the image data (for example, asdescribed above, using the identified properties, etc.), and Step 930may identify objects identified in the construction plan that are notfound in the image data as discrepancies. In yet another example,objects found both in the image data (for example, as described above)and in the construction plan (for example, as described above) may beidentified, and Step 930 may compare properties of the identifiedobjects in the image data (for example, determined as described above)with properties of the identified objects in the construction plan toidentify discrepancies. Some non-limiting examples of such propertiesmay include location of the object, quantity associated with the object(as described above), type of the object, shape of the object,dimensions of the object, color of the object, manufacturer of theobject, type of elements in the object, setting of the object, techniqueof installation of the object, orientation of the object, time of objectinstallment, and so forth.

In some examples, when the at least one electronic record comprises aproject schedule associated with the construction site (such as projectschedule 620, project schedule obtained by Step 920, etc.), Step 930 mayidentify at least one discrepancy between the project schedule and theconstruction site. For example, the image data may be associated withtime (for example, the capturing time of the image data, the receivingtime of the image data, the time of processing of the image data, etc.),and Step 930 may identify at least one discrepancy between a desiredstate of the construction site at the associated time according to theproject schedule and the state of the actual construction site at theassociated time as depicted in the image data. For example, the projectschedule and/or the image data may be analyzed to identify an object inthe construction site at a certain time that should not be in theconstruction site at the certain time according to the project schedule,to identify an object that should be in the construction site at acertain time according to the project schedule that is not in theconstruction site at the certain time, to identify an object in theconstruction site that is in a first state at a certain time that shouldbe in a second state at the certain time according to the projectschedule (where the first state may differ from the second state, wherethe difference between the first state and the second state is at leasta select threshold, etc.), and so forth. In some examples, the analysisof the construction plan and/or the image data to identify discrepancybetween the construction plan and the construction site (for example, asdescribed above) may use information from the project schedule todetermine which discrepancies between the construction plan and theconstruction site are of importance at a selected time according to theproject schedule, to determine which discrepancies between theconstruction plan and the construction site are expected (and thereforeshould be, for example, ignored, treated differently, etc.) at aselected time according to the project schedule, to determine whichdiscrepancies between the construction plan and the construction siteare unexpected at a selected time according to the project schedule, andso forth.

In some examples, when the at least one electronic record comprises afinancial record associated with the construction site (such asfinancial records 625, financial records obtained by Step 920, etc.),Step 930 may identify at least one discrepancy between the financialrecord and the construction site. For example, the financial recordsand/or the image data may be analyzed to identify an object in theconstruction site that should not be in the construction site accordingto the financial record (for example, an object that was not paid for,was not ordered, that it's rental have not yet begun or have alreadyended, that is associated with an entity that should not be in theconstruction site according to the financial records, etc.), to identifyan object that should be in the construction site according to thefinancial records that is not in the construction site (for example, anobject that according to the financial records was paid for, wasordered, was delivered, was invoiced, was installed, is associated withan entity that should be in the construction site according to thefinancial records, etc.), to identify an object in the construction sitethat is in a first state at a certain time that should be in a secondstate at the certain time according to the financial records (forexample, where the first state may differ from the second state, wherethe difference between the first state and the second state is at leasta select threshold, etc., for example, where the work for changing thestate of the object to the second state was ordered, was billed, waspaid for, etc.), and so forth. In some examples, the analysis of theconstruction plan and/or the image data to identify discrepancy betweenthe construction plan and the construction site (for example, asdescribed above) may use information from the financial records todetermine which discrepancies between the construction plan and theconstruction site are of importance at a selected time according to thefinancial records (for example, have financial impact that is beyond aselected threshold), to determine which discrepancies between theconstruction plan and the construction site are not accurately reflectedin the financial records, and so forth. In some examples, the analysisof the progress record and/or the image data to identify discrepancybetween the progress record and the construction site (for example, asdescribed below) may use information from the financial records todetermine which discrepancies between the progress record and theconstruction site are of importance at a selected time according to thefinancial records (for example, have financial impact that is beyond aselected threshold), to determine which discrepancies between theprogress record and the construction site are not accurately reflectedin the financial records, and so forth.

In some examples, when the at least one electronic record comprises aprogress record associated with the construction site (such as progressrecords 630, progress records obtained by Step 920, etc.), Step 930 mayidentify at least one discrepancy between the progress record and theconstruction site. For example, the progress records and/or the imagedata may be analyzed to identify an object in the construction site thatshould not be in the construction site according to the progress record,to identify an object that should be in the construction site accordingto the progress records that is not in the construction site, toidentify an object in the construction site that is in a first statethat should be in a second state according to the progress records (forexample, where the first state may differ from the second state, wherethe difference between the first state and the second state is at leasta select threshold, etc.), to identify an action that is not reflectedin the image data but that is reported as completed in the progressrecord, to identify an action that is reflected in the image data but isnot reported as completed in the progress record, and so forth. In someexamples, the analysis of the construction plan and/or the image data toidentify discrepancy between the construction plan and the constructionsite (for example, as described above) may use information from theprogress records to determine which discrepancies between theconstruction plan and the construction site are in contradiction to theinformation in the progress records, to determine which discrepanciesbetween the construction plan and the construction site are correctlyreflected at a selected time in the progress records, and so forth.

In some examples, when the at least one electronic record comprises anas-built model associated with the construction site (such as as-builtmodel 615, as-built model obtained by Step 920, etc.), Step 930 mayidentify at least one discrepancy between the as-built model and theconstruction site. For example, Step 930 may analyze the as-built modeland/or the image data to identify an object in the as-built model thatdoes not exist in the construction site, to identify an object in theconstruction site that does not exist in the as-built model, to identifyan object that has a specified location according to the as-built modeland is located at a different location in the construction site (forexample, to identify an object for which the discrepancy between thelocation according to the as-built model and the location in theconstruction site is above a selected threshold), to identify an objectthat should have a specified property according to the as-built modelbut has a different property in the construction site (some non-limitingexamples of such property may include type of the object, location ofthe object, shape of the object, dimensions of object, color of theobject, manufacturer of the object, type of elements in the object,setting of the object, technique of installation of the object,orientation of the object, time of object installment, etc.), toidentify an object that should be associated with a specified quantityaccording to the as-built model but is associated with a differentquantity in the construction site (some non-limiting examples of suchquantities may include size of the object, length of the object, numberof elements in the object, etc.), and so forth.

In some embodiments, Step 940 may provide information (for example, to auser, to another process, to an external device, etc.) based, at leastin part, on the at least one discrepancy identified by Step 930. Forexample, in response to a first identified discrepancy, Step 940 mayprovide information (for example, to a user, to another process, to anexternal device, etc.), and in response to a second identifieddiscrepancy, the providence of the information by Step 940 may beforgone. In another example, in response to a first identifieddiscrepancy, Step 940 may provide first information, and in response toa second identified discrepancy, Step 940 may provide secondinformation, different from the first information, for example, to auser, to another process, to an external device, and so forth. In someexamples, Step 940 may provide information to a user as a visual output,audio output, tactile output, any combination of the above, and soforth. For example, Step 940 may provide the information to the user: bythe apparatus analyzing the information (for example, an apparatusperforming at least part of Step 930), through another apparatus (suchas a mobile device associated with the user, mobile phone 111, tablet112, and personal computer 113, etc.), and so forth. For example, theamount of information provided by Step 940, the events triggering theprovidence of information by Step 940, the content of the informationprovided by Step 940, and the nature of the information provided by Step940 may be configurable.

In some examples, Step 940 may present a presentation of at least partof the image data with an overlay presenting information based, at leastin part, on the at least one discrepancy identified by Step 930 (forexample, using a display screen, an augmented reality display system, aprinter, and so forth). For example, objects corresponding to theidentified discrepancies may be marked by an overlay. In anotherexample, information related to properties of the identifieddiscrepancies may be presented in conjunction with the depiction of theobjects corresponding to the identified discrepancies in the image data.For example, an overlay presenting desired dimensions of an object (suchas a room, a wall, a doorway, a window, a tile, an electrical box, etc.)may be presented over a depiction of the object, for example as textualinformation specifying the desired dimensions and/or the actualdimensions, as a line or a shape demonstrating the desired dimensions,and so forth. In another example, an overlay presenting desired locationof an object (such as a doorway, an electrical box, a pipe, etc.) may bepresented in conjunction with a depiction of the object, for example asan arrow pointing from the depiction of the object to the correctlocation, as a marker marking the correct location, as textualinformation detailing the offset in object location, and so forth. Inyet another example, an overlay presenting a desired object missing fromthe construction site may be presented over the image data, for examplein or next to the desired location for the object, with an indication ofthe type and/or properties of the desired object, and so forth. Inanother example, an overlay marking an object in the construction sitethat should not be in the construction site may be presented over ornext to the depiction of the object, for example including an X or asimilar mark over the object, including textual information explainingthe error, and so forth. In yet another example, an overlay marking anobject in the construction site that has properties different from somedesired properties may be presented over or next to the depiction of theobject, for example including a marking of the object, including textualinformation detailing the discrepancies in properties, and so forth.

In some examples, Step 940 may present a visual presentation of at leastpart of a construction plan with markings visually presentinginformation based, at least in part, on the at least one discrepancyidentified by Step 930 (for example, using a display screen, anaugmented reality display system, a printer, and so forth). For example,objects corresponding to the identified discrepancies may be marked inthe displayed construction plan. In another example, information relatedto properties of the identified discrepancies may be presented inconjunction with the depiction of the objects corresponding to theidentified discrepancies in the construction plan. In yet anotherexample, information may be presented as an overlay over thepresentation of the construction plan, for example in similar ways tothe overlay over the image data described above.

In some examples, Step 940 may present a visual presentation of at leastpart of a project schedule with markings visually presenting informationbased, at least in part, on the at least one discrepancy identified byStep 930 (for example, using a display screen, an augmented realitydisplay system, a printer, and so forth). For example, tasks in theproject schedules corresponding to the identified discrepancies may bemarked in the displayed project schedule. Moreover, information aboutthe identified discrepancies may be displayed in conjunction with themarked tasks. For example, the information about the identifieddiscrepancies may be displayed in conjunction to the marked task and mayinclude an amount of actual delay, an amount of predicted future delay,an amount of advance, construction errors associated with the task, andso forth.

In some examples, Step 940 may present a visual presentation of at leastpart of a financial record with markings visually presenting informationbased, at least in part, on the at least one discrepancy identified byStep 930 (for example, using a display screen, an augmented realitydisplay system, a printer, and so forth). For example, items in thefinancial records (such as payments, orders, bills, deliveries,invoices, purchase orders, etc.) corresponding to the identifieddiscrepancies may be marked in the displayed financial record. Moreover,information about the identified discrepancies may be displayed inconjunction with the marked items. For example, the information aboutthe identified discrepancies may be displayed in conjunction to themarked item and may include an amount of budget overrun, an amount ofpredicted future budget overrun, a financial saving, an inconsistency indates associated with the item, and so forth.

In some examples, Step 940 may present a visual presentation of at leastpart of a progress record with markings visually presenting informationbased, at least in part, on the at least one discrepancy identified byStep 930 (for example, using a display screen, an augmented realitydisplay system, a printer, and so forth). For example, items in theprogress record corresponding to the identified discrepancies may bemarked in the displayed progress record. Some non-limiting examples ofsuch items may include an action that is not reflected in the image databut that is reported as completed in the progress record, an action thatis reflected in the image data but is not reported as completed in theprogress record, and so forth. Moreover, information about theidentified discrepancies may be displayed in conjunction with the markeditems.

In some examples, Step 940 may present a visual presentation of at leastpart of an as-built model with markings visually presenting informationbased, at least in part, on the at least one discrepancy identified byStep 930 (for example, using a display screen, an augmented realitydisplay system, a printer, and so forth). For example, objectscorresponding to the identified discrepancies may be marked in thedisplayed as-built model. In another example, information related toproperties of the identified discrepancies may be presented inconjunction with the depiction of the objects corresponding to theidentified discrepancies in the as-built model. In yet another example,information may be presented as an overlay over the presentation of theas-built model, for example in similar ways to the overlay over theimage data described above.

In some examples, the information provided by Step 940 may comprisesafety data. For example, the at least one electronic record associatedwith a construction site obtained by Step 920 may comprise safetyrequirements associated with the construction site. Further, Step 930may analyze image data captured from a construction site (such as imagedata captured from the construction site using at least one image sensorand obtained by Step 710) to identify at least one discrepancy betweenthe safety requirements associated with the construction site and theconstruction site. Further, Step 940 may provide information based, atleast in part, on the at least one discrepancy between the safetyrequirements and the construction site identified by Step 930. Forexample, a type of scaffolds to be used (for example, at a specifiedlocation at the construction site) may be detailed in the safetyrequirements, while a different type of scaffolds (for example, lesssafe, incompatible, etc.) may be used in the construction site, asdepicted in the image data and identified by Step 930. Further, inresponse to the identification of the usage of the different type ofscaffolds by Step 930, Step 940 may provide information about the usageof a type of scaffolds incompatible with the safety requirements, mayvisually indicate the location of the incompatible scaffolds (forexample, in the image data, in a construction plan, in an as-builtmodel, etc.), and so forth.

In some examples, Step 930 may analyze image data (such as image datacaptured from the construction site using at least one image sensor andobtained by Step 710) and/or electronic records (such as the at leastone electronic record associated with a construction site obtained byStep 920) to compute a measure of the at least one discrepancyidentified by Step 930. For example, Step 930 may analyze the image dataand/or the electronic records using an artificial neural networkconfigured to compute measures of the discrepancies from image dataand/or electronic records. In another example, Step 930 may analyze theimage data and/or the electronic records using a machine learning modeltrained using training examples to compute measures of the discrepanciesfrom image data and/or electronic records. Further, the computed measureof a discrepancy may be compared with a selected threshold, and based ona result of the comparison, providing the information related to thediscrepancy by Step 940 may be withheld. For example, in response to afirst result of the comparison, Step 940 may provide the information,while in response to a second result of the comparison, providing theinformation may be delayed and/or forgone. For example, the at least onediscrepancy identified by Step 930 may comprise a discrepancy in aposition of an object between a construction plan and the constructionsite, the measure may include a length between the position according tothe construction plan and the position in the construction site, and thethreshold may be selected according to a legal and/or a contractualobligation associated with the construction site. In another example,the at least one discrepancy identified by Step 930 may comprise adiscrepancy in a quantity associated with an object (some non-limitingexamples of such quantity may include size of the object, length of theobject, dimensions of a room, number of elements in the object, etc.)between a construction plan and the construction site, the measure mayinclude a difference between the quantity according to the constructionplan and the quantity in the construction site, and the threshold may beselected according to a regulatory and/or a contractual obligationassociated with the construction site. In yet another example, the atleast one discrepancy identified by Step 930 may comprise a discrepancyin a time that an object is installed between a planned time ofinstallation according to a project schedule and the actual time ofinstallation in construction site according to the image data, themeasure may include a length of the time difference, and the thresholdmay be selected according to at least one float (the amount of time thata task in a project schedule can be delayed without causing a delay)associated with the task comprising the installation of the object inthe project schedule. In another example, the at least one discrepancyidentified by Step 930 may comprise a discrepancy between a status of atask according to progress records and the status of the task in theconstruction site, and the measure may include a difference in theamount of units handled in the task (area covered in plaster, areacovered with tiles, number of electrical boxes installed, etc.) betweenthe amount according to progress records and the amount in theconstruction site according to the image data.

Consistent with the present disclosure, image data (such as image datacaptured from the construction site using at least one image sensor andobtained by Step 710) may be analyzed to detect at least one object inthe construction site, for example as described below in relation withStep 1120. Further, the image data may be analyzed to identify at leastone property of the at least one object (such as position, size, color,object type, etc.), for example as described below in relation with Step1120. In some examples, Step 940 may further provide information basedon the at least one property. For example, providing the information maybe further based on at least one position associated with the at leastone object (such as, an actual position of the object in theconstruction site, a position of a depiction of the object in the imagedata, a planned position for the object according to a constructionplan, etc.), for example by providing to the user an indicator of theposition, for example, as a set of coordinates, as an indicator on amap, as an indicator on a construction plan, as an indicator in anoverlay over a presentation of the image data, and so forth. In anotherexample, providing the information may be further based on a property ofthe object (such as size, color, object type, quality, manufacturer,volume, weight, etc.), for example by presenting the value of theproperty as measured from the image data, by presenting the plannedand/or required value (or range of values) for the property according tothe electronic records (for example, construction plan, financialrecords showing the manufacturer, as-built model, etc.), by presentingthe difference between the two, and so forth.

In some examples, the image data (such as image data captured from theconstruction site using at least one image sensor and obtained by Step710) may comprise one or more indoor images of the construction site,the at least one object detected by Step 1120 may comprise a pluralityof tiles paving an indoor floor, the at least one property determined byStep 1120 may comprise a number of tiles in the construction siteaccording to the image data, the discrepancy identified by Step 930 maycomprise a discrepancy between the number of tiles in the constructionsite according to the image data and the planned number of tilesaccording to the electronic records, and the information provided byStep 940 may comprise an indication about the discrepancy between thenumber of tiles in the construction site and the at least one electronicrecord. For example, the electronic record may comprise financialrecords comprising a number of tiles that were billed for, a number oftiles that were paid for, a number of tiles that were ordered, and soforth. In another example, the electronic record may comprise aconstruction plan comprising a planned number of tiles. In yet anotherexample, the electronic record may comprise a progress record comprisingthe number of tiles that were reported as installed in the constructionsite.

Consistent with the present disclosure, image data (such as image datacaptured from the construction site using at least one image sensor andobtained by Step 710) may be analyzed to identify at least oneconstruction error, for example using Step 1120 as described below.Further, Step 940 may provide an indication of the at least oneconstruction error, for example as described above. For example, animage depicting the construction error may be presented to a user, forexample with a visual indicator of the construction error. In anotherexample, the location of the construction error may be indicated on amap, on a construction plan, on an as-build model, and so forth. In yetanother example, textual information describing the construction errormay be presented to the user. In some examples, the image data and/orthe electronic records may be further analyzed to identify a type of theat least one construction error. For example, the image data may beanalyzed using a machine learning model trained using training examplesto determine type of construction errors from images and/or electronicrecords. In another example, the image data may be analyzed using anartificial neural network configured to determine a type of constructionerrors from images and/or electronic records. Further, based, at leastin part, on the identified type of the at least one construction error,Step 940 may forgo and/or withhold providing at least part of theinformation. For example, in response to a first identified type of theat least one construction error, information may be provided to theuser, and in response to a second identified type of the at least oneconstruction error, Step 940 may forgo providing the information. Inanother example, in response to a first identified type of the at leastone construction error, Step 940 may provide first information to theuser, and in response to a second identified type of the at least oneconstruction error, Step 940 may provide second information differentfrom the first information to the user. In some examples, the image datamay be further analyzed to determine a severity associated with the atleast one construction error. For example, the image data and/or theelectronic records may be analyzed using a machine learning modeltrained using training examples to determine severity of constructionerrors from images and/or electronic records. In another example, theimage data may be analyzed using an artificial neural network configuredto determine a severity of construction errors from images and/orelectronic records. Further, based, at least in part, on the determinedseverity, Step 940 may forgo and/or withhold providing at least part ofthe information. For example, in response to a first determinedseverity, Step 940 may provide information to the user, and in responseto a second determined severity, Step 940 may forgo providing theinformation. In another example, in response to a first determinedseverity, Step 940 may provide first information to the user, and inresponse to a second determined severity, Step 940 may provide secondinformation different from the first information to the user.

Consistent with the present disclosure, position data associated with atleast part of the image data may be obtained, for example as describedabove with relation to Step 710. Further, Step 940 may provideinformation based, at least in part, on the obtained position data. Forexample, a portion of a construction plan and/or as-build modelcorresponding to the position data may be selected and presented to theuser (for example, the position data may specify a room and theconstruction plan and/or as-build model for the room may be presented,the position data may specify coordinates and a portion of theconstruction plan and/or as-build model comprising a locationcorresponding to the specified coordinates may be presented, and soforth). In another example, objects associated with the position data(for example, according to a construction plan) may be selected, andStep 940 may present information related to the selected objects (forexample, from objects database 605, construction plans 610, as-builtmodels 615, project schedules 620, financial records 625, progressrecords 630, safety records 635, and construction errors 640, etc.) tothe user.

Consistent with the present disclosure, time associated with at leastpart of the image data (such as capturing time, processing time, etc.)may be obtained. Further, Step 940 may provide information based, atleast in part, on the obtained time. For example, Step 940 may presentportions of a project schedule and/or progress records related to theobtained time. In another example, a project schedule and/or progressrecords may be analyzed to select objects related to the obtained time(for example, objects related to tasks that occur or should occur at orin proximity to the obtained time), and information related to theselected objects (for example, from objects database 605, constructionplans 610, as-built models 615, project schedules 620, financial records625, progress records 630, safety records 635, and construction errors640, etc.) may be presented to the user.

Consistent with the present disclosure, the image data obtained by Step710 may comprise at least a first image corresponding to a first pointin time and a second image corresponding to a second point in time, andthe elapsed time between the first point in time and the second point intime may be at least a selected duration (for example, at least an hour,at least one day, at least two days, at least one week, etc.). Further,Step 930 may analyze the image data for the identification of the atleast one discrepancy by comparing the first image with the secondimage. For example, differences between the images may be identifiedwith relation to a first object while no differences between the imagesmay be identified with relation to a second object, and Step 930 mayidentify a discrepancy when a progress record does not specify anymodification of the first object and/or when a progress record specifiesmodification of the second object. In another example, an identifieddifference may indicate that a new object was installed between thefirst point in time and the second point in time, and Step 930 mayidentify a discrepancy when a project schedule do not specify suchinstallation in the corresponding time interval.

Consistent with the present disclosure, data based on image datacaptured from at least one additional construction site may be obtained.Further, Step 940 may provide information based, at least in part, onthe obtained data, for example as described above. For example,information about the plurality of construction sites may be aggregated,as described below, statistics from the plurality of construction sitesmay be generated, and Step 940 may provide information based, at leastin part, on the generated statistics to the user. In another example,information from one construction site may be compared with informationfrom other construction sites, and Step 940 may provide informationbased, at least in part, on that comparison.

FIG. 10A is a schematic illustration of an example construction plan1000 consistent with an embodiment of the present disclosure. Forexample, construction plan 1000 may be stored in construction plans 610.Construction plan 1000 may include plans of objects, such as window1005, interior wall 1010, sink 1015, exterior wall 1020, and door 1025.As described above, Step 930 may identify discrepancies between theconstruction site and the construction plan.

In some examples, Step 930 may identify that window 1005 in theconstruction site is not according to construction plan 1000. Forexample, the position of window 1005 in the construction site may be notaccording to construction plan 1000. Further, the deviation in theposition of window 1005 may be calculated. In another example, the size(such as height, width, etc.) of window 1005 in the construction sitemay be not according to construction plan 1000. Further, the deviationin the size of window 1005 may be calculated. In yet another example,materials and/or parts of window 1005 in the construction site may benot according to construction plan 1000. In another example, window 1005may be missing altogether from the construction site, for example havinga wall instead. In yet another example, window 1005 may exist in theconstruction site but be missing altogether from construction plan 1000.In some examples, the calculated deviation may be compared with aselected deviation threshold. In some examples, information may beprovided to a user, for example using Step 940, based on thediscrepancies between window 1005 in the construction site andconstruction plan 1000, based on the calculated deviation, based on aresult of the comparison of the calculated deviation with the selecteddeviation threshold, and so forth.

In some examples, Step 930 may identify that interior wall 1010 in theconstruction site is not according to construction plan 1000. Forexample, the position of interior wall 1010 in the construction site maybe not according to construction plan 1000 (and as a result, an adjacentroom may be too small or too large). Further, the deviation in theposition of interior wall 1010 and/or in the size of the adjacent roomsmay be calculated. In another example, the size (such as height, width,thickness, etc.) of interior wall 1010 in the construction site may benot according to construction plan 1000. Further, the deviation in thesize of interior wall 1010 may be calculated. In yet another example,materials and/or parts of interior wall 1010 in the construction sitemay be not according to construction plan 1000. In another example,interior wall 1010 may be missing altogether from the construction site,for example having two adjacent rooms connected. In yet another example,interior wall 1010 may exist in the construction site but be missingaltogether from construction plan 1000, for example having a room splitinto two. In some examples, the calculated deviation may be comparedwith a selected deviation threshold. In some examples, information maybe provided to a user, for example using Step 940, based on thediscrepancies between interior wall 1010 in the construction site andconstruction plan 1000, based on the calculated deviation, based on aresult of the comparison of the calculated deviation with the selecteddeviation threshold, and so forth.

In some examples, Step 930 may identify that sink 1015 in theconstruction site is not according to construction plan 1000. Forexample, the position of sink 1015 in the construction site may be notaccording to construction plan 1000. Further, the deviation in theposition of sink 1015 may be calculated. In another example, the size ofsink 1015 in the construction site may be not according to constructionplan 1000. Further, the deviation in the size of sink 1015 may becalculated. In yet another example, materials and/or parts of sink 1015in the construction site may be not according to construction plan 1000.In another example, sink 1015 may be missing altogether from theconstruction site. In yet another example, sink 1015 may exist in theconstruction site but be missing altogether from construction plan 1000.In some examples, the calculated deviation may be compared with aselected deviation threshold. In some examples, information may beprovided to a user, for example using Step 940, based on thediscrepancies between sink 1015 in the construction site andconstruction plan 1000, based on the calculated deviation, based on aresult of the comparison of the calculated deviation with the selecteddeviation threshold, and so forth.

In some examples, Step 930 may identify that a pipe required for sink1015 is implemented incorrectly in the construction site. For example,an end of the pipe may be in an incorrect position in the constructionsite according to the position of sink 1015 in construction plan 1000Further, the deviation in the position of the end of the pipe may becalculated. In another example, the pipe in the construction site may beconnected to a wrong water source according to construction plan 1000.In yet another example, the pipe may be missing altogether from theconstruction site. In yet another example, the pipe may exist in theconstruction site but be missing altogether from construction plan 1000.In some examples, the calculated deviation may be compared with aselected deviation threshold. In some examples, information may beprovided to a user, for example using Step 940, based on thediscrepancies between the pipe in the construction site and constructionplan 1000, based on the calculated deviation, based on a result of thecomparison of the calculated deviation with the selected deviationthreshold, and so forth.

In some examples, Step 930 may identify that exterior wall 1020 in theconstruction site is not according to construction plan 1000. Forexample, the position of exterior wall 1020 in the construction site maybe not according to construction plan 1000 (and as a result, an adjacentroom may be too small or too large, connected wall may be too narrow ortoo wide, for example too narrow for door 1025, and so forth). Further,the deviation in the position of exterior wall 1020 and/or in the sizeof the adjacent room and/or in the size of connected walls may becalculated. In another example, the size (such as height, width,thickness, etc.) of exterior wall 1020 in the construction site may benot according to construction plan 1000. Further, the deviation in thesize of exterior wall 1020 may be calculated. In yet another example,materials and/or parts of exterior wall 1020 in the construction sitemay be not according to construction plan 1000. In another example,exterior wall 1020 may be missing altogether from the construction site,for example having a room connected to the yard. In yet another example,exterior wall 1020 may exist in the construction site but be missingaltogether from construction plan 1000, for example creating anadditional room. In some examples, the calculated deviation may becompared with a selected deviation threshold. In some examples,information may be provided to a user, for example using Step 940, basedon the discrepancies between exterior wall 1020 in the construction siteand construction plan 1000, based on the calculated deviation, based ona result of the comparison of the calculated deviation with the selecteddeviation threshold, and so forth.

In some examples, Step 930 may identify that door 1025 in theconstruction site is not according to construction plan 1000. Forexample, the position of door 1025 in the construction site may be notaccording to construction plan 1000. Further, the deviation in theposition of door 1025 may be calculated. In another example, the size(such as height, width, etc.) of door 1025 in the construction site maybe not according to construction plan 1000. Further, the deviation inthe size of door 1025 may be calculated. In yet another example,materials and/or parts of door 1025 in the construction site may be notaccording to construction plan 1000. In another example, door 1025 maybe missing altogether from the construction site, for example having awall instead. In yet another example, door 1025 may exist in theconstruction site but be missing altogether from construction plan 1000.In some examples, the calculated deviation may be compared with aselected deviation threshold. In some examples, information may beprovided to a user, for example using Step 940, based on thediscrepancies between door 1025 in the construction site andconstruction plan 1000, based on the calculated deviation, based on aresult of the comparison of the calculated deviation with the selecteddeviation threshold, and so forth.

FIG. 10B is a schematic illustration of an example image 1050 capturedby an apparatus consistent with an embodiment of the present disclosure.For example, image 1050 may depicts objects in a construction site, suchas electrical boxes 1055A, 1055B, 1055C, 1055D and 1055E, electricalwires 1060A, 1060B, and 1060C, and an unidentified box 1065. Asdescribed above, Step 930 may identify discrepancies between theconstruction site as depicted in image 1050 and construction planassociated with the construction site.

In some examples, Step 930 may identify that electrical boxes 1055A,1055B, 1055C, 1055D and 1055E in the construction site are not accordingto a construction plan associated with the construction site. Forexample, the position of electrical boxes 1055A, 1055B, 1055C, 1055D and1055E in the construction site may be not according to a constructionplan associated with the construction site. Further, the deviation inthe position of electrical boxes 1055A, 1055B, 1055C, 1055D and 1055Emay be calculated. In another example, the size (such as radius, depth,etc.) of electrical boxes 1055A, 1055B, 1055C, 1055D and 1055E in theconstruction site may be not according to a construction plan associatedwith the construction site. Further, the deviation in the size ofelectrical boxes 1055A, 1055B, 1055C, 1055D and 1055E may be calculated.In yet another example, materials and/or parts and/or type of electricalboxes 1055A, 1055B, 1055C, 1055D and 1055E in the construction site maybe not according to a construction plan associated with the constructionsite. In another example, at least one of additional electrical boxincluded in the construction plan may be missing altogether from theconstruction site. In yet another example, at least one of electricalboxes 1055A, 1055B, 1055C, 1055D and 1055E may exist in the constructionsite but be missing altogether from a construction plan associated withthe construction site. In some examples, the calculated deviation may becompared with a selected deviation threshold. In some examples,information may be provided to a user, for example using Step 940, basedon the discrepancies between electrical boxes 1055A, 1055B, 1055C, 1055Dand 1055E in the construction site and a construction plan associatedwith the construction site, based on the calculated deviation, based ona result of the comparison of the calculated deviation with the selecteddeviation threshold, and so forth.

In some examples, Step 930 may identify that electrical wires 1060A,1060B, and 1060C in the construction site are not according to aconstruction plan associated with the construction site. For example,the position of electrical wires 1060A, 1060B, and 1060C (or of an endpoint of electrical wires 1060A, 1060B, and 1060C) in the constructionsite may be not according to a construction plan associated with theconstruction site. Further, the deviation in the position of electricalwires 1060A, 1060B, and 1060C may be calculated. In another example, thesize (such as length, diameter, etc.) of electrical wires 1060A, 1060B,and 1060C in the construction site may be not according to aconstruction plan associated with the construction site. Further, thedeviation in the size of electrical wires 1060A, 1060B, and 1060C may becalculated. In yet another example, materials and/or parts and/or typeof electrical wires 1060A, 1060B, and 1060C in the construction site maybe not according to a construction plan associated with the constructionsite. In another example, at least one of additional electrical wireincluded in the construction plan may be missing altogether from theconstruction site. In yet another example, at least one of electricalwires 1060A, 1060B, and 1060C may exist in the construction site but bemissing altogether from a construction plan associated with theconstruction site. In some examples, the calculated deviation may becompared with a selected deviation threshold. In some examples,information may be provided to a user, for example using Step 940, basedon the discrepancies between electrical boxes 1055A, 1055B, 1055C, 1055Dand 1055E in the construction site and a construction plan associatedwith the construction site, based on the calculated deviation, based ona result of the comparison of the calculated deviation with the selecteddeviation threshold, and so forth.

FIG. 11 illustrates an example of a method 1100 for updating recordsbased on construction site images. In this example, method 1100 maycomprise: obtaining image data captured from a construction site (Step710), analyzing the image data to detect objects (Step 1120), andupdating electronic records based on the detected objects (Step 1130).In some implementations, method 1100 may comprise one or more additionalsteps, while some of the steps listed above may be modified or excluded.For example, Step 1130 may be excluded from method 1100. In someimplementations, one or more steps illustrated in FIG. 11 may beexecuted in a different order and/or one or more groups of steps may beexecuted simultaneously and vice versa. For example, Step 1120 may beexecuted after and/or simultaneously with Step 710, Step 1130 may beexecuted after and/or simultaneously with Step 1120, and so forth.

Additionally or alternatively, Step 930 may identify a discrepancybetween electronic records and the construction site as depicted in theimage data, for example as described above, and in response Step 1130may update the electronic records according to the identifieddiscrepancy.

In some embodiments, Step 1120 may analyze image data (such as imagedata captured from the construction site using at least one image sensorand obtained by Step 710) to detect at least one object in theconstruction site and/or to determine properties of objects. Somenon-limiting examples of such properties of objects may include type ofobject, position of object in the image data, position of the object inthe construction site, size of the object, dimensions of the object,weight of the object, shape of the object, colors of the object,orientation of the object, state of the object, and so forth. In someexamples, Step 1120 may analyze the image data using a machine learningmodel trained using training examples to detect objects and/or todetermine properties of objects from images. For example, some trainingexamples may include an image depicting an object together with labeldetailing information about the depicted object such as the type of theobject, position of the object in the image, properties of the object,and so forth. Other training examples may include images that do notdepict objects for detection, together with labels indicating that theimages do not depict objects for detection. In some examples, Step 1120may analyze the image data using an artificial neural network configuredto detect objects and/or to determine properties of objects from images.

In some embodiments, Step 1130 may update at least one electronic recordassociated with the construction site based, at least in part, on the atleast one object detected by Step 1120 and/or properties of the at leastone object determined by Step 1120.

In some examples, Step 1120 may analyze the image data to identify atleast one position related to the at least one object detected by Step1120, and the update to the at least one electronic record may befurther based on the identified at least one position. In some examples,items and/or portions of the at least one electronic record associatedwith the identified at least one position may be selected, and theselected items and/or portions may be updated in the at least oneelectronic record, for example based on the at least one object detectedby Step 1120 and/or properties of the at least one object determined byStep 1120. For example, objects in database 605 may be selectedaccording to the identified at least one position, and the selectedobjects may be updated. In another example, portions of as-built model615 and/or construction plan 610 may be selected according to theidentified at least one position, and the selected portions may beupdated. In some examples, a record of a position associated with the atleast one object detected by Step 1120 may be updated in the at leastone electronic record according to the identified at least one position,for example a position of an object may be registered in an as-builtmodel 615, in database 605, and so forth. In some examples, theidentified at least one position related to the at least one object maybe compared with a position associated with the object in the at leastone electronic record (for example, with a position of the object inconstruction plan 610), and construction errors 640 may be updated basedon a result of the comparison (for example, registering a constructionerror in construction errors 640 when the difference in the position isabove a selected threshold, and forgoing registration of a constructionerror when the difference is below the selected threshold).

In some examples, Step 1120 may analyze the image data to identify atleast one property of the at least one object (such as position, size,color, object type, and so forth), and Step 1130 may update the at leastone electronic record based, at least in part, on the at least oneproperty. In some examples, records of the at least one electronicrecord associated with the identified at least one property may beselected, and Step 1130 may update the selected records in the at leastone electronic record, for example based on the at least one objectdetected by Step 1120 and/or properties of the at least one objectdetermined by Step 1120. For example, the selected record may beassociated with a specific object type (such as tile, electrical box,etc.), and the selected records may be updated (for example to accountfor the tiles or the electrical boxes detected in the image data). Insome examples, Step 1130 may update a record of a property associatedwith the at least one object detected by Step 1120 in the at least oneelectronic record according to the identified at least one property. Insome examples, the identified at least one property related to the atleast one object may be compared with a property associated with theobject in the at least one electronic record (for example, with aproperty of the object in construction plan 610), and Step 1130 mayupdate construction errors 640 based on a result of the comparison (forexample, registering a construction error in construction errors 640when the difference in the property is above a selected threshold, andforgoing registration of a construction error when the difference isbelow the selected threshold).

In some examples, the at least one electronic record associated with theconstruction site may comprise a searchable database, and Step 1130 mayupdate the at least one electronic record by indexing the at least oneobject in the searchable database. For example, the searchable databasemay be searched for a record related to the at least one object, inresponse to a determination that the searchable database includes arecord related to the at least one object, the record related to the atleast one object may be updated, and in response to a determination thatthe searchable database do not include a record related to the at leastone object, a record related to the at least one object may be added tothe searchable database. In some examples, such searchable database maybe indexed according to type of the objects, to properties of objects,to position of objects, to status of objects, to time the object wasidentified, to dimensions of the object, and so forth.

In some examples, when the image data comprises at least a first imagecorresponding to a first point in time and a second image correspondingto a second point in time (the elapsed time between the first point intime and the second point in time may be at least a selected duration,for example, at least an hour, at least one day, at least two days, atleast one week, etc.), Step 1130 may update the at least one electronicrecord based, at least in part, on a comparison of the first image andthe second image. For example, differences between the images may beidentified with relation to a first object while no differences betweenthe images may be identified with relation to a second object, and as aresult update to the at least one electronic record may be made withrelation to the first object, while updates related to the second objectmay be forgone. In another example, an identified difference mayindicate that a new object was installed between the first point in timeand the second point in time, and as result the installation of the newobject may be recorded in progress records 630 (for example with a timestamp associated with the first point in time and/or the second point intime), project schedule 620 may be updated to reflect the installationof the new object (for example, before the second point in time and/orafter the first point in time), as-build model 615 may be updated toreflect the installed new object, and so forth.

In some examples, the image data may comprise one or more indoor imagesof the construction site, the at least one object detected by Step 1120may comprise a plurality of tiles paving an indoor floor, the at leastone property determined by Step 1120 may comprise a number of tiles, andStep 1130 may update the at least one electronic record based, at leastin part, on the number of tiles. For example, Step 1130 may updatefinancial records 625 to reflect the number of tiles in the constructionsite, Step 1130 may update as-built model 615 with the number of tilesat selected locations in the construction site (room, balcony, selectedarea of a floor, selected unit, etc.), and so forth.

In some examples, the at least one electronic record may comprise atleast one as-built model associated with the construction site (such asas-built model 615), and Step 1130 may update to the at least oneelectronic record by modifying the at least one the as-built model. Forexample, an as-built model may be updated to include objects detected byStep 1120 (for example by analyzing images of the construction site), torecord a state and/or properties of objects in the as-built modelaccording to the state and/or properties of the objects in theconstruction site as determined by Step 1120 (for example by analyzingimages of the construction site), to position an object in the as-buildmodel according to the position of the object in the construction siteas determined by Step 1120 (for example by analyzing images of theconstruction site, according to the position of the image sensor thecaptured the images, etc.), and so forth.

In some examples, the at least one electronic record may comprise atleast one project schedule associated with the construction site (suchas project schedule 620), and Step 1130 may update the at least oneelectronic record by updating the at least one project schedule, forexample by updating at least one projected date in the at least oneproject schedule. For example, Step 1120 may analyze image data capturedat different points in time to determine a pace of progression, and Step1130 may update at least one projected finish date in the at least oneproject schedule based on the amount of remaining work in the task andthe determined pace of progression. For example, an analysis may showthat a first number of units were handled within a selected elapsedtime, and a pace of progression may be calculated by dividing the firstnumber of units by the selected elapsed time. Moreover, a remainingnumber of units to be handled in the task may be obtained, for examplefrom project schedule 620 and/or progress records 630. Further, theremaining number of units may be divided by the calculated pace ofprogression to estimate a remaining time for the task, and the projectedfinish date of the task may be updated accordingly. In another example,Step 1120 may analyze image data captured at a selected time todetermine that a task that should have started according to projectschedule 620 haven't yet started in the construction site. In response,Step 1130 may update projected dates associated with the task (such asprojected starting date, projected finish date, projected intermediatedates, and so forth). In yet another example, Step 1130 may updateprojected date in project schedule 620 (for example as described above),and may further update other dates in project schedule 620 that dependon the updated dates. For example, a first task may start only after asecond task is completed, and Step 1130 may update projected dates ofthe first task (such as the projected starting date, projected finishtime, etc.) after the projected finish date of the second task isupdated.

In some examples, the at least one electronic record may comprise atleast one financial record associated with the construction site (suchas financial record 625), and Step 1130 may update the at least oneelectronic record by updating the at least one financial record, forexample by updating at least one amount in the at least one financialrecord. For example, Step 1120 may analyze image data captured atdifferent points in time to determine a pace of progression, for exampleas described above, and Step 1130 may update at least one projectedfuture expense (for example, updating a projected date of the projectedfuture expense, updating a projected amount of the projected futureexpense, etc.) based on the determined pace of progression. In anotherexample, Step 1120 may analyze image data to determine that a task wasprogressed or completed, and in response to the determination, a paymentassociated with the task may be approved, placed for approval, executed,etc., and the financial records may be updated by Step 1130 accordingly.In yet another example, Step 1120 may analyze image data to determinethat a task was not progressed or completed as specified in anelectronic record (for example not progressed or completed as plannedaccording to project schedule 620, not progressed or completed asreported according to progress records 630, etc.), and in response tothe determination a payment associated with the task may be reduced,withheld, delayed, etc., and the financial records may be updated byStep 1130 accordingly. In another example, financial assessments may begenerated by analyzing image data depicting the construction site and/orelectronic records associated with the construction site, and Step 1130may update financial records according to the generated financialassessments, for example by recording the generated financialassessments in the financial records, by updating a financial assessmentrecorded in the financial records according to the generated financialassessments, in any other way described below, and so forth.

In some examples, the at least one electronic record may comprise atleast one progress record associated with the construction site (such asprogress record 630), and Step 1130 may update the at least oneelectronic record by updating the at least one progress record, forexample by updating at least one progress status corresponding to atleast one task in the at least one progress record. For example, Step1120 may analyze image data to determine that a task was completed or acurrent percent of completion of the task, and Step 1130 may update atleast one progress status corresponding to the task in the at least oneprogress record according to the determination. In another example, Step1120 may analyze image data to determine that a task was not progressedor completed as specified in an electronic record (for example notprogressed or completed as planned according to project schedule 620,not progressed or completed as reported according to progress records630, etc.), and in response Step 1130 may record a delay in the at leastone progress record according to the determination.

In some examples, the at least one electronic record (for example, theat least one electronic record updated by Step 1130, the at least oneelectronic record obtained by Step 920, etc.) may comprise informationrelated to safety information. For example, image data (such as imagedata captured from the construction site using at least one image sensorand obtained by Step 710) may be analyzed to identify at least onesafety issue related to the at least one object detected by Step 1120,and Step 1130 may record information related to the at least one safetyissue in the at least one electronic record. For example, Step 1120 mayanalyze the image data to identify a type of scaffolds used in theconstruction site, the identified type of scaffolds may be compared withsafety requirements, and in response to a determination that the type ofscaffolds is incompatible with the safety requirements, and Step 1130may record a corresponding safety issue in safety records 635. Inanother example, Step 1120 may analyze the image data to detect a hangedobject loosely connected to the ceiling, and Step 1130 may record acorresponding safety issue in safety records 635.

In some examples, the at least one electronic record (for example, theat least one electronic record updated by Step 1130, the at least oneelectronic record obtained by Step 920, etc.) may comprise informationrelated to at least one construction error. For example, image data(such as image data captured from the construction site using at leastone image sensor and obtained by Step 710) may be analyzed to identifyat least one construction error related to the at least one objectdetected by Step 1120, and Step 1130 may record information related tothe at least one construction error in the at least one electronicrecord. For example, Step 1120 may analyze the image data to identify anobject installed incorrectly, and in response Step 1130 may record theincorrect installation of the object as a construction error inconstruction errors 640. In another example, Step 930 may identify adiscrepancy between electronic records (such as construction plan 610)and the construction site as depicted in the image data, for example asdescribed above, Step 1120 may identify a construction error based onthe identified discrepancy, for example as described above, and Step1130 may record the construction error identified by Step 930 inconstruction errors 640.

In some examples, Step 1130 may update the at least one electronicrecord associated with the construction site based, at least in part, ona time associated with the image data. For example, the image data maycomprise at least a first image corresponding to a first point in timeand a second image corresponding to a second point in time, Step 1130may update the at least one electronic record based, at least in part,on a comparison of the first image and the second image, as describedabove. In another example, Step 1120 may detect an object in the imagedata and/or determine properties of an object in an image data capturedat a particular time (such as a particular minute, a particular hour, aparticular date, etc.), and Step 1130 may record the detected objectand/or the determined properties of the object together with theparticular time in objects database 605. Other examples where the updateis based on a time associated with the image data are described above.

In some examples, Step 1130 may update the at least one electronicrecord associated with the construction site based, at least in part, ona position associated with the image data. For example, Step 1120 maydetect an object in the image data and/or determine properties of anobject in an image data captured at a particular location (such as aparticular unit, a particular room, from a particular position withinthe room, from a particular angle, at a particular set of coordinatesspecifying a location, etc.), and Step 1130 may record the detectedobject and/or the determined properties of the object together with theparticular location in objects database 605. Other examples where theupdate is based on a position associated with the image data and/or on aposition of objects depicted in the image data are described above.

Consistent with the present disclosure, image data (such as image datacaptured from the construction site using at least one image sensor andobtained by Step 710) may be analyzed to detect at least one object inthe construction site, for example as described above in relation withStep 1120. Further, the image data may be analyzed to identify at leastone property of the at least one object (such as position, size, color,object type, and so forth), for example as described above in relationwith Step 1120. The identified at least one property may be used toselect at least one electronic record of a plurality of alternativeelectronic records associated with the construction site. Step 1130 mayupdate the selected at least one electronic record, for example based onthe detected at least one object and/or the identified at least oneproperty. For example, the plurality of alternative electronic recordsmay be associated with different types of objects, and the type of theobject detected by Step 1120 may be used to select an electronic recordassociated with the type of the detected object of the plurality ofalternative electronic records. In another example, the plurality ofalternative electronic records may be associated with different regionsof the construction site (for example, different rooms, different units,different buildings, etc.), and the position of the object detected byStep 1120 may be used to select an electronic record associated with aregion corresponding to the position of the detected object of theplurality of alternative electronic records.

In some examples, the at least one electronic record (for example, theat least one electronic record updated by Step 1130, the at least oneelectronic record obtained by Step 920, etc.) may comprise informationbased on at least one image captured from at least one additionalconstruction site. For example, the at least one electronic record maycomprise information derived from image data captured from a pluralityof construction sites. Moreover, the information about the plurality ofconstruction sites may be aggregated, and statistics from the pluralityof construction sites may be generated. Further, information from oneconstruction site may be compared with information from otherconstruction sites. In some examples, such statistics and/or comparisonsmay be provided to the user. In some examples, pace of progression atdifferent construction sites may be measured from image data asdescribed above, the measured pace of progression at the differentconstruction sites may be aggregated in an electronic record (forexample, in a database), statistics about the pace of progression may begenerated and/or provided to a user, a pace of progression in oneconstruction site may be compared to pace of progression in otherconstruction sites, and so forth. In some examples, statistical modeltying properties of the construction sites to the pace of progressionmay be determined (for example, using regression models, usingstatistical tools, using machine learning tools, etc.) based on theaggregated measured pace of progression at the different constructionsites. Further, the statistical model may be used to predict a pace ofprogression for other construction sites from properties of the otherconstruction sites. Additionally or alternatively, the statistical modelmay be used to suggest modification to a construction site in order toincrease the pace of progression in that construction site. In someexamples, construction errors at different construction sites may beidentified from image data as described above, the identifiedconstruction errors at the different construction sites may beaggregated in an electronic record (for example, in a database),statistics about the construction errors may be generated and/orprovided to a user, construction errors in one construction site may becompared to construction errors in other construction sites, and soforth. In some examples, statistical model tying properties of theconstruction sites to construction errors may be determined (forexample, using regression models, using statistical tools, using machinelearning tools, etc.) based on the aggregated construction errors fromthe different construction sites. Further, the statistical model may beused to predict construction errors likely to occur at otherconstruction sites from properties of the other construction sites (forexample, together with a predict amount of construction errors).Additionally or alternatively, the statistical model may be used tosuggest modification to a construction site in order to avoid ordecrease construction errors in that construction site.

Different capturing parameters for the capturing of images fromconstruction sites may result in different visual details to be visiblein the captured images, and in turn, different insights may be reachedby analyzing these images. For example, using one pixel resolution andcapturing the image at a first distance from an electrical box, mayresults in clear visualization of electrical wires in the image, whileusing a different pixel resolution and/or capturing the image at adifferent distance may results in the electrical wires being blurry orotherwise poorly visualized in the image. As a result, analysis of theimage may provide insights related to the installation of the electricalwires in the former case, and may be unobtainable or unreliable in thelatter case. In another example, using different filters may result indifferent portions of the electromagnetic spectrum (such as visiblespectrum, infrared spectrum, near infrared spectrum, different colors,etc.) being captured in the image, and therefore may result in differentvisual details visible in different portions of the electromagneticspectrum being visible or being excluded from the image. As a result,analysis of the image may identify or may miss particular constructiondefects visible in particular portions of the electromagnetic spectrum.In yet another example, using different position, orientation, and zoomsettings for the camera may result in capturing of different portions ofthe construction site in the image, and as a result analysis of theimage may provide insights related to different portions of theconstruction site. Selecting the capturing parameters based oninformation related to the construction site may enable capturing ofimages that include desired details about the construction site. Forexample, selecting capturing parameters based on an object presumed tobe at a particular part of the construction site (for example, based onan analysis of a construction plan, of a project schedule, of a progressrecord, of an as-built model, based on an analysis of previouslycaptured images of the construction site, etc.) may enable a selectionof capturing parameters suitable for capturing visual details requiredfor a visual inspection of the object.

FIG. 12 illustrates an example of a method 1200 for determining imagecapturing parameters in construction sites. In this example, method 1200may comprise: accessing at least one electronic record, the at least oneelectronic record includes information related to an object in aconstruction site (Step 1210); analyzing the information related to theobject to determine at least one capturing parameter associated with theobject (Step 1220); and causing capturing, at the construction site, ofat least one image of the object using the determined at least onecapturing parameter associated with the object (Step 1230). In someimplementations, method 1200 may comprise one or more additional steps,while some of the steps listed above may be modified or excluded. Insome implementations, one or more steps illustrated in FIG. 12 may beexecuted in a different order and/or one or more groups of steps may beexecuted simultaneously and vice versa. Some non-limiting examples ofsuch object may include objects including at least part of a stairway,of a wall, of a lift shaft, of a beam, of a pipe, of a wire, of adoorway, of a tile, of an electrical box, of a box, of a room, of anapartment, of a constructed element, of an installed element, and soforth.

FIG. 13 illustrates an example of a method 1300 for determining imagecapturing parameters in construction sites. In this example, method 1300may comprise: accessing a previously captured image of an object in aconstruction site (Step 1310); analyzing the previously captured imageof the object to determine at least one capturing parameter associatedwith the object for a prospective image capturing (Step 1320); andcausing capturing, at the construction site, of at least one image ofthe object using the determined at least one capturing parameterassociated with the object (Step 1330). In some implementations, method1300 may comprise one or more additional steps, while some of the stepslisted above may be modified or excluded. In some implementations, oneor more steps illustrated in FIG. 13 may be executed in a differentorder and/or one or more groups of steps may be executed simultaneouslyand vice versa. Some non-limiting examples of such object may includeobjects including at least part of a stairway, of a wall, of a liftshaft, of a beam, of a pipe, of a wire, of a doorway, of a tile, of anelectrical box, of a box, of a room, of an apartment, of a constructedelement, of an installed element, and so forth.

In some embodiments, method 1220 may further comprise receiving the atleast one image of the object captured using the determined at least onecapturing parameter; analyzing the received at least one image todetermine whether a quality of the received at least one image issufficient; in response to a determination that the quality of thereceived at least one image is insufficient, determining at least onemodified capturing parameter associated with the object; and causingcapturing of at least one additional image of the object using thedetermined at least one modified capturing parameter. For example, edgesof the received at least one image may be analyzed to determine whetherthe received is sufficiently sharp, and in response to a determinationthat the sharpness of the received at least one image is insufficient,determining at least one modified capturing parameter associated withthe object and configured to increase the sharpness of prospectiveimages. In another example, a computer vision algorithm (such as objectdetector, object recognition, image classification, image segmentation,etc.) may be applied to the at least one image, and in response to afailure of the computer vision algorithm or to insufficient confidencein the results of the computer vision algorithm, determining at leastone modified capturing parameter associated with the object andconfigured to increase the likelihood of the computer vision algorithmto succeed.

In some embodiments, Step 1210 may comprise accessing at least oneelectronic record, the at least one electronic record may includeinformation related to an object in a construction site. Somenon-limiting examples of such electronic records may include a recordcomprising information related to objects associated with theconstruction site (such as object database 605), a construction planassociated with the construction site (such as construction plans 610),an as-built model associated with the construction site (such asas-built models 615), a project schedule associated with theconstruction site (such as project schedules 620), a financial recordassociated with the construction site (such as financial records 625), aprogress record associated with the construction site (such as progressrecords 630), a safety issue associated with the construction site (suchas safety records 635), a record comprising information related toconstruction error associated with the construction site (such asconstruction errors 640), and so forth. Some non-limiting examples ofsuch information related to the object in the construction site mayinclude a type of the object, a position of the object in theconstruction site, an orientation of at least part of the object, acolor of at least part of the object, a shape of at least part of theobject, a dimension of at least part of the object (such as length,size, width, height, depth, etc.), installation technique, installationtime, installation errors, defects, and so forth. In some examples, theinformation related to the object may include information related to oneor more planned properties for the object in the construction site,and/or information related to recorded properties of the object from theconstruction site. In one example, Step 1210 may use Step 920 to accessthe at least one electronic record. In another example, Step 1210 mayaccess the at least one electronic record in a memory unit (such asmemory units 210, shared memory modules 410, memory 600, and so forth).In yet another example, Step 1210 may access the at least one electronicrecord through a data communication network (such as communicationnetwork 130), for example using one or more communication devices (suchas communication modules 230, internal communication modules 440,external communication modules 450, and so forth). In an additionalexample, Step 1210 may access the at least one electronic record in adatabase. In yet another example, Step 1210 may generate at least partof the at least one electronic record, for example by analyzing imagescaptured in the construction site (for example as described herein), byanalyzing other records, by analyzing images of paper records, and soforth.

In some embodiments, Step 1220 may comprise analyzing informationrelated to an object (such as the information related to the objectincluded in the at least one electronic record accessed by Step 1210) todetermine at least one capturing parameter associated with the object.Some non-limiting examples of such capturing parameters may include adistance of an image sensor from the object, a viewing angle of theobject, a location in the construction site to capture the at least oneimage from, a direction of an image sensor used to capture the at leastone image, an exposure time, a frame rate, a gain, an ISO speed, astereo base, a focus, and so forth. For example, in response to a firstinformation related to the object, Step 1220 may determine a first atleast one capturing parameter associated with the object, and inresponse to a second information related to the object, Step 1220 maydetermine a second at least one capturing parameter associated with theobject, the second at least one capturing parameter may differ from thefirst at least one capturing parameter. In another example, a machinelearning model may be trained using training examples to determinecapturing parameters from information related to objects, and Step 1220may use the trained machine learning model to analyze the informationrelated to the object included in the at least one electronic recordaccessed by Step 1210 and determine the at least one capturing parameterassociated with the object. One example of such training example mayinclude information related to an object, together with a labelindicating desired capturing parameter for this object.

In one example, Step 1220 and/or Step 1320 may determine at least onecapturing parameter associated with the object configured to enable adetermination of an object type of the object by analyzing the at leastone image of the object captured using the determined at least onecapturing parameter. In another example, Step 1220 and/or Step 1320 maydetermine at least one capturing parameter associated with the objectconfigured to enable a determination of a condition of the object byanalyzing the at least one image of the object captured using thedetermined at least one capturing parameter. In yet another example,Step 1220 and/or Step 1320 may determine at least one capturingparameter associated with the object configured to ensure a selectedpixel resolution in the captured at least one image for the object.

In one example, the information related to the object may include adimension of at least part of the object (such as size, area, volume,length, width, height, depth, planned dimension for at least part of theobject, recorded dimension of at least part of the object, etc.), andStep 1220 may comprise basing the determination of the at least onecapturing parameter associated with the object on the dimension of theat least part of the object. In one example, the information related tothe object may include a shape of at least part of the object (such asplanned shape for at least part of the object, recorded shape of atleast part of the object, etc.), and Step 1220 may comprise basing thedetermination of the at least one capturing parameter associated withthe object on the shape of the at least part of the object. In oneexample, the information related to the object may include a color of atleast part of the object (such as planned color for at least part of theobject, recorded color of at least part of the object, etc.), and Step1220 may comprise basing the determination of the at least one capturingparameter associated with the object on the color of the at least partof the object. In one example, the information related to the object mayinclude a spatial orientation of at least part of the object (such asup, down, left, right, north, at a particular angle with respect toanother object, at a particular angle with respect to a particulardirection, planned spatial orientation for at least part of the object,recorded spatial orientation of at least part of the object, etc.), andStep 1220 may comprise basing the determination of the at least onecapturing parameter associated with the object on the spatialorientation of the at least part of the object. In one example, theinformation related to the object may include a position of at leastpart of the object (such as a position with respect to another object, aposition with respect to another particular position, a planned positionfor at least part of the object, a recorded position of at least part ofthe object, etc.), and Step 1220 may comprise basing the determinationof the at least one capturing parameter associated with the object onthe position of the at least part of the object. In one example, theinformation related to the object may include a type of at least part ofthe object (such as planned type for at least part of the object,recorded type of at least part of the object, etc.), and Step 1220 maycomprise basing the determination of the at least one capturingparameter associated with the object on the type of the at least part ofthe object. In one example, the information related to the object mayinclude information related to one or more holes in a three dimensionalstructure in the construction site, the three dimensional structure maysurround the object, and Step 1220 may comprise basing the determinationof the at least one capturing parameter associated with the object onthe information related to the one or more holes in the threedimensional structure. For example, information related to one or moreholes in a three dimensional structure in the construction site mayinclude information related to one or more holes in a room that includesthe object, and Step 1220 may use the information related to the one ormore holes to estimate illumination conditions at the room and selectcapturing parameters adjusted to the estimated illumination conditions.

In some examples, the at least one electronic record accessed by Step1210 may comprise at least a construction plan associated with theconstruction site, and Step 1220 may comprise analyzing the constructionplan to determine the at least one capturing parameter. For example, theconstruction plan associated with the construction site may includeplanned properties of at least part of the object (such as type,dimensions, shape, color, position, spatial orientation, installationtechnique, etc.), and Step 1220 may comprise basing the determination ofthe at least one capturing parameter associated with the object on theplanned properties of the at least part of the object. In some examples,the at least one electronic record accessed by Step 1210 may comprise atleast a project schedule associated with the construction site, and Step1220 may comprise analyzing the project schedule to determine the atleast one capturing parameter. For example, the project scheduleassociated with the construction site may comprise planned schedule ofplanned tasks related to the object, and Step 1220 may comprise basingthe determination of the at least one capturing parameter associatedwith the object on the planned schedule of the planned tasks related tothe object. In some examples, the at least one electronic recordaccessed by Step 1210 may comprise at least a financial recordassociated with the construction site, and Step 1220 may compriseanalyzing the financial record to determine the at least one capturingparameter. In one example, the financial record associated with theconstruction site may comprise properties of the object (such as type,dimensions, color, price, supplier, manufacturer, etc.), and Step 1220may comprise basing the determination of the at least one capturingparameter associated with the object on the properties of the object.For example, an object supplied by one supplier (and/or manufactured byone manufacturer) needs to be inspected using one image analysisroutine, and therefore may require a first image capturing parameters,while an object supplied by a different supplier (and/or manufactured bya different manufacturer) needs to be inspected using a different imageanalysis routine, and therefore may require different image capturingparameters. In some examples, the at least one electronic recordaccessed by Step 1210 may comprise at least a progress record associatedwith the construction site, and Step 1220 may comprise analyzing theprogress record to determine the at least one capturing parameter. Forexample, the progress record and/or the financial record associated withthe construction site may comprise an indication that tasks related tothe object were completed (or progressed), and Step 1220 may comprisebasing the determination of the at least one capturing parameterassociated with the object on the indication that the tasks related tothe object were completed (or progressed). In some examples, the atleast one electronic record accessed by Step 1210 may comprise at leasta construction error record associated with the construction site, andStep 1220 may comprise analyzing the construction error record todetermine the at least one capturing parameter. For example, theconstruction error record may include an indication of a defect in theobject and/or in the installation of the object, and Step 1220 maycomprise basing the determination of the at least one capturingparameter associated with the object on the indication of the defect inthe object and/or in the installation of the object.

In some examples, Step 1220 may base the determination of the at leastone capturing parameter associated with the object on an analysis of apreviously captured image of the object. For example, Step 1220 may useStep 1320 (described below) to analyze the previously captured image ofthe object and determine the at least one capturing parameter associatedwith the object. In another example, a machine learning model may betrained using training examples to determine capturing parameters forprospective capturing of images from previously captured images, andStep 1220 may use the trained machine learning model to analyze thepreviously captured image of the object and determine the at least onecapturing parameter. One example of such training example may include animage of an object, together with a desired capturing parameter for aprospective capturing of images of the object. In yet another example,Steps 910, 920 and 930 may analyze the previously captured image andidentify one or more discrepancies between the construction site and atleast one electronic record, and Step 1220 may base the determination ofthe at least one capturing parameter associated with the object on theidentified one or more discrepancies. In yet another example, Step 1120may analyze the previously captured image to detect objects in the imageand/or determine properties of the objects, and Step 1220 may base thedetermination of the at least one capturing parameter associated withthe object on the detected objects, on whether particular objects aredetected, on determined properties of the object, and so forth. Somenon-limiting examples of such properties may type, dimension, shape,color, position, spatial orientation, defects, visual appearance, and soforth.

In one example, the previously captured image of the object may be animage captured using a particular image sensor, and Step 1230 and/orStep 1330 may comprise causing the particular image sensor to capturethe at least one image using the determined at least one capturingparameter associated with the object. In one example, the previouslycaptured image of the object may be an image captured using a firstimage sensor, and Step 1230 and/or Step 1330 may comprise causing asecond image sensor to capture the at least one image using thedetermined at least one capturing parameter associated with the object,the second image sensor may differ from the first image sensor. In oneexample, the previously captured image of the object may be an imagecaptured using a stationary camera positioned in the construction site,and Step 1230 and/or Step 1330 may comprise at least one of causing thesame stationary camera to capture the at least one image using thedetermined at least one capturing parameter, causing a differentstationary camera positioned in the construction site to capture the atleast one image using the determined at least one capturing parameter,causing a mobile capturing device positioned in the construction site tocapture the at least one image using the determined at least onecapturing parameter, causing an image acquisition robot to capture theat least one image using the determined at least one capturingparameter, and causing an image acquisition drone to capture the atleast one image using the determined at least one capturing parameter.In one example, the previously captured image of the object may be animage captured using a mobile capturing device positioned in theconstruction site, and Step 1230 and/or Step 1330 may comprise at leastone of causing the same mobile capturing device to capture the at leastone image using the determined at least one capturing parameter, causinga different mobile capturing device positioned in the construction siteto capture the at least one image using the determined at least onecapturing parameter, causing a stationary camera positioned in theconstruction site to capture the at least one image using the determinedat least one capturing parameter, causing an image acquisition robot tocapture the at least one image using the determined at least onecapturing parameter, and causing an image acquisition drone to capturethe at least one image using the determined at least one capturingparameter. In one example, the previously captured image of the objectis an image captured using an image acquisition robot, and Step 1230and/or Step 1330 may comprise at least one of causing the same imageacquisition robot to capture the at least one image using the determinedat least one capturing parameter, causing a different image acquisitionrobot to capture the at least one image using the determined at leastone capturing parameter, causing a stationary camera positioned in theconstruction site to capture the at least one image using the determinedat least one capturing parameter, causing a mobile capturing devicepositioned in the construction site to capture the at least one imageusing the determined at least one capturing parameter, and causing animage acquisition drone to capture the at least one image using thedetermined at least one capturing parameter. In one example, thepreviously captured image of the object may be an image captured usingan image acquisition drone, and Step 1230 and/or Step 1330 may compriseat least one of causing the same image acquisition drone to capture theat least one image using the determined at least one capturingparameter, causing a different image acquisition drone to capture the atleast one image using the determined at least one capturing parameter,causing a stationary camera positioned in the construction site tocapture the at least one image using the determined at least onecapturing parameter, causing a mobile capturing device positioned in theconstruction site to capture the at least one image using the determinedat least one capturing parameter, and causing an image acquisition robotto capture the at least one image using the determined at least onecapturing parameter.

In one example, method 1200 and/or method 1300 may analyze informationrelated to the object (such as the information related to the objectincluded in the at least one electronic record accessed by Step 1210)and/or the at least one previously captured image to determine a need tocapture at least one additional image of the object. For example, amachine learning model may be trained using training examples todetermine a need to capture additional images of objects frominformation related to the objects and/or from images of the objects,method 1200 may use the trained machine learning model to analyze theinformation related to the object included in the at least oneelectronic record accessed by Step 1210 and/or the at least onepreviously captured image to determine the need to capture at least oneadditional image of the object, and method 1300 may use the trainedmachine learning model to analyze the at least one previously capturedimage accessed by Step 1310 to determine a need to capture at least oneadditional image of the object. One example of such training example mayinclude information related to the object and/or an image of the object,together with a label indicating whether there is a need to captureadditional images of the object. Further, in some examples, in responseto a determined need to capture at least one additional image of theobject, Step 1230 and/or Step 1330 may cause the capturing of the atleast one image of the object, and in response to no determined need tocapture at least one additional image of the object, Step 1230 and/orStep 1330 may forgo causing the capturing of the at least one image ofthe object.

In one example, method 1200 and/or method 1300 may analyze theinformation related to the object (such as information related to theobject included in the at least one electronic record accessed by Step1210) and/or the at least one previously captured image to determine atime preference for the capturing of the at least one image of theobject. Some non-limiting examples of such time preference may include atime-in-day, a day-in-week, a date, a time interval, an exact time, andso forth. For example, a machine learning model may be trained usingtraining examples to determine a time preference for capturing ofadditional images of objects from information related to the objectsand/or from images of the objects, method 1200 may use the trainedmachine learning model to analyze the information related to the objectincluded in the at least one electronic record accessed by Step 1210and/or the at least one previously captured image to determine the timepreference for the capturing of the at least one additional image of theobject, and method 1300 may use the trained machine learning model toanalyze the at least one previously captured image access by Step 1310to determine a time preference for the capturing of the at least oneimage of the object. One example of such training example may includeinformation related to the object and/or an image of the object,together with a label indicating the time preference for the capturingof additional images of the object. Further, in some examples, Step 1230and/or Step 1330 may cause the capturing of the at least one image ofthe object at the preferred time and/or according to the determined timepreference.

In some embodiments, Step 1230 may comprise causing capturing, at theconstruction site, of at least one image of the object using at leastone capturing parameter, such as the at least one capturing parameterassociated with the object determined by Step 1220. For example, Step1230 may use Step 1330 (described below) to cause the capturing, at theconstruction site, of at least one image of the object using at leastone capturing parameter. In some embodiments, Step 1330 may comprisecausing capturing, at the construction site, of at least one image ofthe object using at least one capturing parameter, such as the at leastone capturing parameter associated with the object determined by Step1320. For example, Step 1330 may use Step 1230 to cause the capturing,at the construction site, of at least one image of the object using atleast one capturing parameter. In one example, the at least on image maybe captured at least a selected time (such as one minute, one hour, oneday, two days, one week, etc.) after the capturing of the previouslycaptured image.

In some examples, Step 1230 and/or Step 1330 may comprise providinginformation configured to cause the capturing, at the construction site,of at least one image of the object using the at least one capturingparameter. For example, the provided information may include one or moreof an indication of the at least one capturing parameter, an indicationof the object, an indication of a planned capturing time, an indicationof a planned capturing position, an indication of a planned capturingangle, and so forth. In one example, Step 1230 and/or Step 1330 mayprovide the information to a user, and the provided information may beconfigured to cause the user to capture the at least one image of theobject using the determined at least one capturing parameter associatedwith the object (for example, the provided information may include aguidance to a user to capture the at least one image of the object usingthe determined at least one capturing parameter). In one example, Step1230 and/or Step 1330 may comprise transmitting information to anexternal device, the transmitted information may be configured to causethe external device to capture the at least one image of the objectusing the determined at least one capturing parameter associated withthe object (some non-limiting examples of such external device mayinclude a stationary camera positioned in the construction site, amobile capturing device position in the construction site, a wearablecapturing device worn by a person in the construction site, an imageacquisition robot, an image acquisition drone, and so forth). In oneexample, Step 1230 and/or Step 1330 may comprise causing a stationarycamera positioned in the construction site to capture the at least oneimage using the determined at least one capturing parameter associatedwith the object. In one example, Step 1230 and/or Step 1330 maycomprise, causing a mobile capturing device position in the constructionsite to capture the at least one image using the determined at least onecapturing parameter associated with the object. In one example, Step1230 and/or Step 1330 may comprise causing an image acquisition robot tocapture the at least one image using the determined at least onecapturing parameter associated with the object. For example, Step 1230and/or Step 1330 may comprise causing an image acquisition robot to moveto a particular position in the construction site and capture the atleast one image using the determined at least one capturing parameterassociated with the object from the particular position. In one example,Step 1230 and/or Step 1330 may comprise causing an image acquisitiondrone to capture the at least one image using the determined at leastone capturing parameter associated with the object. For example, Step1230 and/or Step 1330 may comprise causing an image acquisition drone tomove to a particular position in the construction site and capture theat least one image using the determined at least one capturing parameterassociated with the object from the particular position. In one example,Step 1230 and/or Step 1330 may comprise capturing the at least one imageof the object using the determined at least one capturing parameter.

In some embodiments, the at least one electronic record accessed by Step1210 may further include information related to a second object in theconstruction site (the second object may differ from the object), Step1220 may comprise analyzing the information related to the second objectto determine at least one capturing parameter associated with the secondobject (the at least one capturing parameter associated with the secondobject may differ from the at least one capturing parameter associatedwith the object), and Step 1230 may comprise causing capturing, at theconstruction site, of an image of the second object using the determinedat least one capturing parameter associated with the second object.

In some embodiments, the at least one electronic record accessed by Step1210 may further include information related to a second object in theconstruction site (the second object may differ from the object), Step1220 may comprise analyzing the information related to the second objectand the information related to the object to determine the at least onecapturing parameter (for example as described below), and Step 1230 maycomprise causing capturing, at the construction site, of a single imageof the object and at least part of the second object using the at leastone capturing parameter determined by Step 1220. In some examples, thesecond object may encircle the object, the object and the second objectmay have direct contact, the object and the second object may bedisjointed, the object and the second object may be positioned at leastone a selected distance (such as a foot, a meter, a yard, an inch, acentimeter, etc.) from each other, and so forth.

In some embodiments, the at least one electronic record accessed by Step1210 may further include information related to a second object in theconstruction site (the second object may differ from the object), Step1220 may comprise analyzing the information related to the second objectand the information related to the object to determine the at least onecapturing parameter (for example as described below), and Step 1230 maycomprise causing capturing, at the construction site, of a single imageof the object using the determined at least one capturing parameter, thesingle image may include no depiction of any part of the second object.

In some examples, Step 1220 may comprise analyzing the informationrelated to the second object and the information related to the objectto determine the at least one capturing parameter. For example, amachine learning model may be trained using training examples todetermine capturing parameters from information related to objects, andStep 1220 may use the trained machine learning model to analyze theinformation related to the second object and the information related tothe object included in the at least one electronic record accessed byStep 1210 and determine the at least one capturing parameter. Oneexample of such training example may include information related to twoobjects, together with a label indicating desired capturing parameterfor at least one of the two objects.

In some embodiments, the at least one electronic record accessed by Step1210 may further include information related to a space in theconstruction site, and the Step 1220 may comprise analyzing theinformation related to the space and the information related to theobject to determine the at least one capturing parameter. Further, inone example, Step 1230 may comprise causing an image sensor positionedin the space to capture the at least one image of the object using thedetermined at least one capturing parameter. For example, the space maybe adjacent to the object, the space may be an empty space, the spacemay be intended to be empty, the space may include the object, and soforth. In one example, a machine learning model may be trained usingtraining examples to determine capturing parameters from informationrelated to objects and information related to spaces, and Step 1220 mayuse the trained machine learning model to analyze the informationrelated to the space and the information related to the object includedin the at least one electronic record accessed by Step 1210 anddetermine the at least one capturing parameter. One example of suchtraining example may include information related to an object andinformation related to a space related to the object, together with alabel indicating desired capturing parameter. In another example, thedimensions of the space may limit the possible capturing parameters(such as distance from the object, viewing angle, etc.), and Step 1220may use the information related to the space to select valid capturingparameters.

In some examples, Step 1220 may analyze the at least one electronicrecord to determine a type of the object, in response to a firstdetermined type, Step 1220 may select a first capturing parameter, inresponse to a second determined type, Step 1220 may select a secondcapturing parameter (the second capturing parameter may differ from thefirst capturing parameter), Step 1230 may cause capturing of the atleast one image of the object using the selected capturing parameter. Insome examples, Step 1220 may analyze the at least one electronic recordto determine a construction stage associated with the object, inresponse to a first determined construction stage, Step 1220 may selecta first capturing parameter, in response to a second determinedconstruction stage, Step 1220 may select a second capturing parameter(the second capturing parameter may differ from the first capturingparameter), Step 1230 may cause capturing of the at least one image ofthe object using the selected capturing parameter. In some examples,Step 1220 may analyze the at least one electronic record to identify ascheduled task associated with the object, in response to a firstidentified scheduled task, Step 1220 may select a first capturingparameter, in response to a second identified scheduled task, Step 1220may select a second capturing parameter (the second capturing parametermay differ from the first capturing parameter), Step 1230 may causecapturing of the at least one image of the object using the selectedcapturing parameter. In some examples, Step 1220 may analyze the atleast one electronic record to identify a status of a task associatedwith the object, in response to a first identified status of the task,Step 1220 may select a first capturing parameter, in response to asecond identified status of the task, Step 1220 may select a secondcapturing parameter (the second capturing parameter may differ from thefirst capturing parameter), Step 1230 may cause capturing of the atleast one image of the object using the selected capturing parameter. Inone example, the first identified status of the task may be ‘completed’and/or the second identified status of the task may be ‘in progress’. Insome examples, Step 1220 may analyze the at least one electronic recordto identify an indication of a completed task associated with theobject, in response to a first identified indication of a completedtask, Step 1220 may select a first capturing parameter, in response to asecond identified indication of a completed task, Step 1220 may select asecond capturing parameter (the second capturing parameter may differfrom the first capturing parameter), Step 1230 may cause capturing ofthe at least one image of the object using the selected capturingparameter. In some examples, Step 1220 may analyze the at least oneelectronic record to determine whether a particular task associated withthe object is completed, in response to a determination that theparticular task is completed, Step 1220 may select a first capturingparameter, in response to a determination that the particular task isincomplete, Step 1220 may select a second capturing parameter (thesecond capturing parameter may differ from the first capturingparameter), Step 1230 may cause capturing of the at least one image ofthe object using the selected capturing parameter. In some examples,Step 1220 may analyze the at least one electronic record to identify anindication of a task in progress associated with the object, in responseto a first identified indication of a task in progress, Step 1220 mayselect a first capturing parameter, in response to a second identifiedindication of a task in progress, Step 1220 may select a secondcapturing parameter (the second capturing parameter may differ from thefirst capturing parameter), Step 1230 may cause capturing of the atleast one image of the object using the selected capturing parameter.

In some embodiments, Step 1310 may comprise accessing a previouslycaptured image of an object in a construction site. Some non-limitingexamples of such image may include images captured using at least one ofa stationary camera positioned in the construction site, a mobilecapturing device positioned in the construction site, an imageacquisition robot, an image acquisition drone, a wearable capturingdevice worn by a person in the construction site, a color camera, agrayscale camera, a hyperspectral camera, a depth camera, a rangecamera, a stereo camera, an active stereo camera, a time-of-flightcamera, and so forth. In one example, Step 1310 may use Step 710 toaccess the previously captured image. In another example, Step 1310 mayaccess the previously captured image in a memory unit (such as memoryunits 210, shared memory modules 410, memory 600, and so forth). In yetanother example, Step 1310 may access the previously captured imagethrough a data communication network (such as communication network130), for example using one or more communication devices (such ascommunication modules 230, internal communication modules 440, externalcommunication modules 450, and so forth). In an additional example, Step1310 may access the previously captured image using a database. In yetanother example, Step 1310 may capture the previously captured image,for example using an image sensor positioned in the construction site.

In some embodiments, Step 1320 may comprise analyzing an image of theobject, such as the previously captured image accessed by Step 1310, todetermine at least one capturing parameter associated with the objectfor a prospective image capturing. Some non-limiting examples of suchcapturing parameters may include a distance of an image sensor from theobject, a viewing angle of the object, a location in the constructionsite to capture the at least one image from, a direction of an imagesensor used to capture the at least one image, an exposure time, a framerate, a gain, an ISO speed, a stereo base, a focus, and so forth. Forexample, Step 1320 may use Step 1220 to determine the at least onecapturing parameter associated with the object based on an analysis of apreviously captured image of the object, for example as described above.In another example, in response to a first previously captured image,Step 1320 may determine a first at least one capturing parameterassociated with the object, and in response to a second previouslycaptured image, Step 1320 may determine a second at least one capturingparameter associated with the object, the second at least one capturingparameter may differ from the first at least one capturing parameter. Inyet another example, a machine learning model may be trained usingtraining examples to determine capturing parameters for prospectivecapturing of images from previously captured images, and Step 1320 mayuse the trained machine learning model to analyze the previouslycaptured image of the object and determine the at least one capturingparameter. One example of such training example may include an image ofan object, together with a label indicating a desired capturingparameter for a prospective capturing of images of the object. Inanother example, Steps 910, 920 and 930 may analyze the previouslycaptured image and identify one or more discrepancies between theconstruction site and at least one electronic record, and Step 1320 maybase the determination of the at least one capturing parameterassociated with the object on the identified one or more discrepancies.In yet another example, Step 1120 may analyze the previously capturedimage to detect objects in the image and/or determine properties of theobjects, and Step 1320 may base the determination of the at least onecapturing parameter associated with the object on the detected objects,on whether particular objects are detected, on determined properties ofthe object, and so forth. Some non-limiting examples of such propertiesmay type, dimension, shape, color, position, spatial orientation,defects, visual appearance, and so forth.

In some examples, the at least one capturing parameter associated withthe object for the prospective image capturing determined by Step 1320may be identical to a capturing parameter of the previously capturedimage accessed by Step 1310. For example, Step 1320 may compriseanalyzing the previously captured image of the object accessed by Step1310 to determine the capturing parameter of the previously capturedimage, and may select the at least one capturing parameter associatedwith the object for the prospective image capturing to be identical tothe determined capturing parameter of the previously captured image. Insome examples, the at least one capturing parameter associated with theobject for the prospective image capturing determined by Step 1320 maydiffer from a capturing parameter of the previously captured image. Inone example, Step 1320 may comprise analyzing the previously capturedimage of the object accessed by Step 1310 to determine the capturingparameter of the previously captured image, and may base the determinedat least one capturing parameter associated with the object for theprospective image capturing on the determined capturing parameter of thepreviously captured image. In some examples, Step 1320 may compriseanalyzing the previously captured image of the object accessed by Step1310 to determine the capturing parameter of the previously capturedimage. For example, a machine learning model may be trained usingtraining examples to determine capturing parameters of images, and Step1320 may use the trained machine learning model to analyze thepreviously captured image of the object accessed by Step 1310 anddetermine the capturing parameter of the previously captured image. Oneexample of such training example may include an image together with alabel indicating the capturing parameters used to capture the image. Inanother example, some capturing parameters, such as pixel resolution,may be determined directly from the previously captured image.

In some examples, the at least one previously captured image may beanalyzed to determine a property of at least part of the object (such asdimension, shape, color, spatial orientation, position, type, etc.), forexample using Step 1120 as described above, and Step 1320 may comprisebasing the determination of the at least one capturing parameterassociated with the object for the prospective image capturing on thedetermined property of the at least part of the object. For example, inresponse to a first determined property, Step 1320 may select a first atleast one capturing parameter associated with the object for theprospective image capturing, and in response to a second determinedproperty, Step 1320 may select a second at least one capturing parameterassociated with the object for the prospective image capturing, thesecond at least one capturing parameter may differ from the first atleast one capturing parameter. In one example, the at least onepreviously captured image may be analyzed to determine a dimension of atleast part of the object (such as size, area, volume, length, width,height, depth, planned dimension for at least part of the object,recorded dimension of at least part of the object, etc.), for exampleusing Step 1120 as described above, and Step 1320 may comprise basingthe determination of the at least one capturing parameter associatedwith the object on the determined dimension of the at least part of theobject. In one example, the at least one previously captured image maybe analyzed to determine a shape of at least part of the object, forexample using Step 1120 as described above, and Step 1320 may comprisebasing the determination of the at least one capturing parameterassociated with the object on the determined shape of the at least partof the object. In one example, the at least one previously capturedimage may be analyzed to determine a color of at least part of theobject, for example using Step 1120 as described above, and Step 1320may comprise basing the determination of the at least one capturingparameter associated with the object on the determined color of theobject. In one example, the at least one previously captured image maybe analyzed to determine a spatial orientation of at least part of theobject, for example using Step 1120 as described above, and Step 1320may comprise basing the determination of the at least one capturingparameter associated with the object on the determined spatialorientation of the at least part of the object. In one example, the atleast one previously captured image may be analyzed to determine aposition of at least part of the object, for example using Step 1120 asdescribed above, and Step 1320 may comprise basing the determination ofthe at least one capturing parameter associated with the object on thedetermined position of the at least part of the object. In one example,the at least one previously captured image may be analyzed to determinea type of the object, for example using Step 1120 as described above,and Step 1320 may comprise basing the determination of the at least onecapturing parameter associated with the object on the determined type ofthe object. In one example, the at least one previously captured imagemay be analyzed to determine at least one construction error (such as aconstruction error related to the object), for example using Step 930 asdescribed above, and Step 1320 may comprise basing the determination ofthe at least one capturing parameter associated with the object on thedetermined at least one construction error.

In some examples, Step 1320 may compare the previously captured image ofthe object (such as the previously captured image of the object accessedby Step 1310) may be compared with information related to the object inat least one electronic record, for example using Step 930 describedabove, to determine the at least one capturing parameter associated withthe object for the prospective image capturing. For example, Step 1210may be used to access at least one electronic record, Step 930 mayanalyze the previously captured image of the object and the at least oneelectronic record to identify discrepancies between the constructionsite and the at least one electronic record, and Step 1320 may base thedetermination of the at least one capturing parameter associated withthe object on the determined type of the object. In one example, inresponse to a first identified discrepancy, Step 1320 may select a firstat least one capturing parameter associated with the object for theprospective image capturing, and in response to a second identifieddiscrepancy, Step 1320 may select a second at least one capturingparameter associated with the object for the prospective imagecapturing, the second at least one capturing parameter may differ fromthe first at least one capturing parameter. In another example, inresponse to an identified discrepancy, Step 1320 may select a first atleast one capturing parameter associated with the object for theprospective image capturing, and in response to no identifieddiscrepancies, Step 1320 may select a second at least one capturingparameter associated with the object for the prospective imagecapturing, the second at least one capturing parameter may differ fromthe first at least one capturing parameter. In one example, Step 1320may comprise comparing the previously captured image of the object withinformation related to the object in a construction plan associated withthe construction site, for example using Step 930 described above, todetermine the at least one capturing parameter associated with theobject for the prospective image capturing. In one example, Step 1320may comprise comparing the previously captured image of the object withinformation related to the object in a progress record associated withthe construction site, for example using Step 930 described above, todetermine the at least one capturing parameter associated with theobject for the prospective image capturing. In one example, Step 1320may comprise comparing the previously captured image of the object withinformation related to the object in a financial record associated withthe construction site, for example using Step 930 described above, todetermine the at least one capturing parameter associated with theobject for the prospective image capturing. In one example, Step 1320may comprise comparing the previously captured image of the object withinformation related to the object in a project schedule associated withthe construction site, for example using Step 930 described above, todetermine the at least one capturing parameter associated with theobject for the prospective image capturing.

In some examples, the previously captured image accessed by Step 1310may depict a second object, and the second object may differ from theobject. For example, the second object may encircle the object, theobject and the second object may have direct contact, the object and thesecond object may be disjointed, the object and the second object may bepositioned at least one foot from each other, and so forth. Further, insome examples, Step 1320 may analyze the previously captured image ofthe object to determine at least one capturing parameter associated withthe second object (the at least one capturing parameter associated withthe second object may differ from the at least one capturing parameterassociated with the object), and Step 1330 may cause capturing, at theconstruction site, of an image of the second object using the determinedat least one capturing parameter associated with the second object.

In some examples, the previously captured image accessed by Step 1310may depict a second object, and the second object may differ from theobject. For example, the second object may encircle the object, theobject and the second object may have direct contact, the object and thesecond object may be disjointed, the object and the second object may bepositioned at least one foot from each other, and so forth. Further, insome examples, Step 1320 may analyze the previously captured image ofthe object to determine the at least one capturing parameter associatedwith the object, and Step 1330 may cause capturing, at the constructionsite, of a single image of the object using the determined at least onecapturing parameter. In one example, the single image may not includeany depiction of any part of the second object. In another example, thesingle image may include a depiction of at least a part of the secondobject.

In some embodiments, the previously captured image of the objectaccessed by Step 1310 may be an image of the object captured at a firstpoint in time, and a second image previously captured from theconstruction site at a second point in time may be accessed, for exampleas described above in relation to Step 1310 (the second point in timemay differ from the first point in time).

In some embodiments, the previously captured image of the objectaccessed by Step 1310 may be an image of the object captured at a firstpoint in time, and a second previously captured image of the object inthe construction site captured at a second point in time may beaccesses, for example as described above in relation to Step 1310 (thesecond point in time may differ from the first point in time). Further,Step 1320 may analyze the previously captured image of the objectaccessed by Step 1310 and the second previously captured image of theobject to determine the at least one capturing parameter associated withthe object for the prospective image capturing. In one example, thepreviously captured image of the object accessed by Step 1310 and thesecond previously captured image of the object may be images capturedusing the same image sensor. In another example, the previously capturedimage of the object accessed by Step 1310 and the second previouslycaptured image of the object may be images captured using differentimage sensors. For example, Step 1320 may analyze the previouslycaptured image of the object accessed by Step 1310 and the secondpreviously captured image of the object to determine a change in a stateof the object between the first point in time and the second point intime (for example as described above), and may base the determination ofthe at least one capturing parameter associated with the object for theprospective image capturing on the determined change in the state of theobject between the first point in time and the second point in time. Inanother example, each one of the previously captured image accessed byStep 1310 and the second previously captured image may depict a secondobject (the second object may differ from the object), Step 1320 mayanalyze the previously captured image accessed by Step 1310 and thesecond previously captured image to determine a change in a state of thesecond object between the first point in time and the second point intime (for example as described above), and Step 1320 may base thedetermination of the at least one capturing parameter associated withthe object for the prospective image capturing on the determined changein the state of the second object between the first point in time andthe second point in time.

In some embodiments, the previously captured image of the objectaccessed by Step 1310 may be an image of the object captured at a firstpoint in time, and a second image previously captured from theconstruction site at a second point in time may be accessed, for exampleas described above in relation to Step 1310 (the second point in timemay differ from the first point in time). Further, in some examples, thepreviously captured image accessed by Step 1310 and the secondpreviously captured image may be analyzed to determine whether theobject was installed between the first point in time and the secondpoint in time, for example as described above in relation to Step 930.Further, in some examples, in response to a determination that theobject was installed between the first point in time and the secondpoint in time, Step 1320 may select a first value for the at least onecapturing parameter associated with the object for the prospective imagecapturing, and in response to a determination that the object was notinstalled between the first point in time and the second point in time,Step 1320 may select a second value for the at least one capturingparameter associated with the object for the prospective imagecapturing, the second value differs from the first value.

Capturing images from construction site may be beneficial todocumentation of construction sites, and to analysis and control of theconstruction process. However, the image capturing may be costly and maypose significant burden. On the one hand, some useful image analysis mayrequire high quality images (such as close-up images, high resolutionimages, etc.), and on the other hand, capturing large parts of theconstruction site in high quality images may be costly or practicallyimpossible. Therefore, selecting parts of the construction site to becaptured at higher quality may balance the capturing cost and thequality, focusing higher quality capturing on selected areas of theconstruction site and/or at selected times. For example, areas that didnot show any change in low quality images may be left out of thecaptured high quality images, as well as areas that include no elementsthat require analysis of high quality images. On the other hand, areasthat appear to have changed since a previous point in time and thatinclude elements that require analysis of high quality images, may beincluded in a high quality capturing task. Image acquisition robots mayenable capturing of high quality images (from selected distance, fromselected angle, using selected capturing parameters, etc.), but may beexpensive or otherwise unable to capture images of the entireconstruction site at a selected time frame. Controlling which areas ofthe construction site are captured using the image acquisition robots,and when the images are captured, may focus this limited resource tocapture the most important images.

FIG. 14 illustrates an example of a method 1400 for controlling imageacquisition robots in construction sites. In this example, method 1400may comprise: obtaining a plurality of images captured in a constructionsite, the plurality of images comprises at least a first imagecorresponding to a first point in time and a second image correspondingto a second point in time (Step 1410); analyzing the first image and thesecond image to determine whether a change occurred in a particular areaof the construction site between the first point in time and the secondpoint in time (Step 1420); determining whether a higher quality image ofthe particular area of the construction site is needed (Step 1430); inresponse to a determination that a change occurred in the particulararea of the construction site and a determination that a higher qualityimage is needed, causing an image acquisition robot to acquire at leastone image of the particular area of the construction site (Step 1440);and in response to at least one of a determination that no changeoccurred in the particular area of the construction site and adetermination that a higher quality image is not needed, withholdingcausing the image acquisition robot to acquire the at least one image ofthe particular area of the construction site (Step 1450). In someimplementations, method 1400 may comprise one or more additional steps,while some of the steps listed above may be modified or excluded. Insome implementations, one or more steps illustrated in FIG. 14 may beexecuted in a different order and/or one or more groups of steps may beexecuted simultaneously and vice versa. In one example, method 1400 mayfurther comprise, in response to the determination that a changeoccurred in the particular area of the construction site and thedetermination that a higher quality image is needed, updating anelectronic record associated with the construction site based on ananalysis of the at least one image of the particular area of theconstruction site, for example using method 1100 described above.

In some embodiments, an image acquisition robot (such as the imageacquisition robot of method 1400) may comprise at least two legs and maybe configured to use the at least two legs to move in the constructionsite. In one example, the at least two legs may be at least three legs.In some embodiments, an image acquisition robot (such as the imageacquisition robot of method 1400) may comprise a plurality of wheels andmay be configured to use the plurality of wheels to move in theconstruction site. In one example, the plurality of wheels may be atleast three wheels. In one example, the image acquisition robot may beconfigured to move by pushing against a floor with at least one of theplurality of wheels. In some embodiments, an image acquisition robot(such as the image acquisition robot of method 1400) may comprise atleast one leg and at least one wheel.

In some embodiments, Step 1410 may comprise obtaining a plurality ofimages captured in a construction site, the plurality of images maycomprise at least a first image corresponding to a first point in timeand a second image corresponding to a second point in time, and thesecond point in time may differ from the first point in time. Somenon-limiting examples of such images may include images captured usingat least one of a stationary camera positioned in the construction site,a mobile capturing device positioned in the construction site, an imageacquisition robot, an image acquisition drone, a wearable capturingdevice worn by a person in the construction site, a color camera, agrayscale camera, a hyperspectral camera, a depth camera, a rangecamera, a stereo camera, an active stereo camera, a time-of-flightcamera, and so forth. In one example, Step 1410 may use Step 710 toaccess at least part of the plurality of images. In another example,Step 1410 may access at least part of the plurality of images in amemory unit (such as memory units 210, shared memory modules 410, memory600, and so forth). In yet another example, Step 1410 may access atleast part of the plurality of images through a data communicationnetwork (such as communication network 130), for example using one ormore communication devices (such as communication modules 230, internalcommunication modules 440, external communication modules 450, and soforth). In an additional example, Step 1410 may access at least part ofthe plurality of images using a database. In yet another example, Step1410 may capture at least part of the plurality of images, for exampleusing an image sensor positioned in the construction site. In oneexample, the first image and the second image may be images capturedusing the same image sensor. In another example, the first image may bean image captured using a first image sensor, the second image may be animage captured using a second image sensor, and the second image sensormay differ from the first image sensor. In one example, the second imagemay be an image captured using an image sensor permanently fixed to afirst location in the construction site, and the first image may be animage captured using the same image sensor permanently fixed to thefirst location in the construction site or using a different imagesensor (such as a different permanently fixed camera, a wearable camera,an image acquisition robot, and so forth). In another example, thesecond image may be an image captured using a wearable image sensor wornby a person in the construction site, and the first image may be animage captured using the same wearable image sensor or using a differentimage sensor (such as a different wearable camera, a stationary camera,an image acquisition robot, and so forth).

In some embodiments, Step 1420 may comprise analyzing the first imageand the second image to determine whether a change occurred in aparticular area of the construction site between the first point in timeand the second point in time. Step 1420 may take into account onlychanges that are significant to the construction process and ignoreother changes that are insignificant to the construction process. Forexample, Step 1420 may determine a change in response to an installationof elements in the particular area of the construction site, and maydetermine that no change occurred in the particular area of theconstruction site in response to garbage being collected from theparticular area of the construction site. In one example, a machinelearning model may be trained using training examples to determinewhether changes significant to the construction process occurred in theparticular area of the construction site from images, and Step 1420 mayuse the trained machine learning model to analyze the first image andthe second image and determine whether a change occurred in theparticular area of the construction site between the first point in timeand the second point in time. One example of such training example mayinclude a pair of images of a portion of a construction site, togetherwith a label indicating whether a change significant to the constructionprocess occurred in the portion of the construction site. In anotherexample, Step 1420 may use an object detector to analyze the first imageand the second image and detect elements in the particular area of theconstruction site at the first point in time and at the second point intime. Further, Step 1420 may compare the elements detected in theparticular area of the construction site at the two points in time. Inresponse to a first result of the comparison (such as addition and/orremovals of elements that are significant to the construction process),Step 1420 may determine that a change occurred in the particular area ofthe construction site between the first point in time and the secondpoint in time, and in response to a second result of the comparison(such as no change in the detected elements, addition and/or removalsonly of elements that are insignificant to the construction process,etc.), Step 1420 may determine that a change did not occurred in theparticular area of the construction site between the first point in timeand the second point in time

In some embodiments, Step 1430 may comprise determining whether a higherquality image of the particular area of the construction site is needed.In some examples, Step 1430 may base the determination of whether ahigher quality image of the particular area of the construction site isneeded on an analysis of an electronic record associated with theconstruction site and/or on an analysis of at least part of theplurality of images. In some examples, Step 1430 may base thedetermination of whether a higher quality image of the particular areaof the construction site is needed on an analysis of at least part ofthe plurality of images obtained by Step 1410, for example as describedabove in relation to methods 1200 and 1300. For example, the analyzed atleast part of the plurality of images obtained by Step 1410 may includethe second image, may not include the second image, may include a partof the second image, and so forth. In one example, a machine learningmodel may be trained using training example to determine a need forhigher quality image from previously captured images, and Step 1430 mayuse the trained machine learning model to analyze the at least part ofthe plurality of images obtained by Step 1410 and determine whether ahigher quality image of the particular area of the construction site isneeded. One example of such training examples may include an image of aportion of a construction site, together with a label indicating whethera higher quality image of the portion of a construction site is needed.In some examples, Step 1430 may base the determination of whether ahigher quality image of the particular area of the construction site isneeded on an analysis of an electronic record associated with theconstruction site, for example as described above in relation to methods1200 and 1300. In one example, Step 1430 may analyze a progress recordto identify a progress to at least one task related to the particulararea of the construction site, and may base the determination of whethera higher quality image of the particular area of the construction siteis needed on the identified progress to the at least one task. Inanother example, Step 1430 may analyze a financial record to identify atleast one financial transaction related to the particular area of theconstruction site, and may base the determination of whether a higherquality image of the particular area of the construction site is neededon the identified at least one financial transaction. In yet anotherexample, Step 1430 may analyze a project schedule to identify at leastone scheduled task related to the particular area of the constructionsite, and may base the determination of whether a higher quality imageof the particular area of the construction site is needed on theidentified at least one scheduled task. For example, Step 1430 may useNatural Language Processing (NLP) algorithms to analyze textualinformation from the electronic record associated with the constructionsite (for example, from the progress record, from the financial record,from the project schedule, and so forth), and may base the determinationof whether a higher quality image of the particular area of theconstruction site is needed on a result of the analysis of the textualinformation. In another example, the electronic record may includestructured data (for example in a data structure, in a tabular form, ina database, and so forth), Step 1430 may obtain particular informationfrom the structured data (such as information related to the at leastone task, to the at least one financial transaction, to the at least onescheduled task, to the particular area of the construction site, and soforth), and may base the determination of whether a higher quality imageof the particular area of the construction site is needed on theobtained particular information.

In some embodiments, Step 1440 may comprise causing an image acquisitionrobot to acquire at least one image of the particular area of theconstruction site, for example in response to a determination by Step1420 that a change occurred in the particular area of the constructionsite and a determination by Step 1430 that a higher quality image isneeded. In some examples, Step 1440 may comprise providing informationconfigured to cause the image acquisition robot to acquire the at leastone image of the particular area of the construction site. For example,Step 1440 may provide the information to the image acquisition robot, toan external system controlling (directly or indirectly) the imageacquisition robot, to a different process controlling (directly orindirectly) the image acquisition robot, and so forth. For example, theprovided information may include one or more of an indication of atleast one capturing parameter, an indication of the particular area ofthe construction site, an indication of a planned capturing time, anindication of a planned capturing position, an indication of a plannedcapturing angle, navigation data to the planned capturing position, andso forth. In one example, Step 1440 may comprise causing the imageacquisition robot to move to a particular position in the constructionsite and to capture the at least one image from the particular position.In one example, Step 1440 may further comprise at least one of receivingthe captured at least one image, analyzing the captured at least oneimage, updating electronic records associated with the construction sitebased on an analysis of the captured at least one image, providinginformation to users based on an analysis of the captured at least oneimage, and so forth.

In some embodiments, Step 1450 may comprise withholding and/or forgoingcausing the image acquisition robot to acquire the at least one image ofthe particular area of the construction site, for example in response toat least one of a determination by Step 1420 that no change occurred inthe particular area of the construction site and a determination by Step1430 that a higher quality image is not needed.

In some examples, one or more images (such as, at least part of theplurality of images obtained by Step 1410) may be analyzed to determinea type of the change that occurred in the particular area of theconstruction site between the first point in time and the second pointin time. Some non-limiting examples of such types may include ‘ElementInstalled’, ‘Element Removed’, ‘Element Created’, ‘Material Applied’,‘Elements Connected’, ‘Action Performed’, and so forth. In someexamples, the type of the change may further be based on the particularelement and/or material and/or action corresponding to the change. Forexample type ‘Electrical Box Installed’ may differ from ‘Pipe Installed’and from ‘Electrical Box Removed’. In one example, a machine learningmodel may be trained using training examples to determine types ofchanges from images, and the trained machine learning model may be usedto analyze the at least part of the plurality of images and determinethe type of the change. An example of such training example may includeone or more images depicting a particular change in a construction site,together with an indication of a type of the particular change. Inanother example, an action recognition algorithm may be used to analyzethe at least part of the plurality of images to identify an action takenplace in the construction site (such as an installation of an object, anapplication of a material, a destruction of an element, etc.), and thetype of change may be determined based on the identified action. In someembodiments, method 1400 may further comprise analyzing at least part ofthe plurality of images obtained by Step 1410 to determine a type of thechange that occurred in the particular area of the construction sitebetween the first point in time and the second point in time, forexample as described above. Further, in response to a first determinedtype of the change, Step 1440 may cause the image acquisition robot toacquire the at least one image of the particular area of theconstruction site, and in response to a second determined type of thechange, causing the image acquisition robot to acquire the at least oneimage of the particular area of the construction site may be withheldand/or forgone.

In some embodiments, method 1400 may further comprise analyzing at leastpart of the plurality of images obtained by Step 1410 to select at leastone image capturing parameter, for example using Step 1320, and inresponse to the determination that a change occurred in the particulararea of the construction site by Step 1420 and the determination that ahigher quality image is needed by Step 1430, Step 1440 may cause theimage acquisition robot to acquire at least one image of the particulararea of the construction site using the selected at least one imagecapturing parameter. In some embodiments, method 1400 may furthercomprise analyzing at least part of the plurality of images (forexample, the first image and the second image, the second image, adifferent image, a part of an image, etc.) to determine a type of thechange that occurred in the particular area of the construction sitebetween the first point in time and the second point in time, forexample as described above. Further, in response to a first determinedtype of the change, Step 1440 may cause the image acquisition robot toacquire the at least one image of the particular area of theconstruction site using a first image capturing parameter, and inresponse to a second determined type of the change, Step 1440 may causethe image acquisition robot to acquire the at least one image of theparticular area of the construction site using a second image capturingparameter, the second image capturing parameter may differ from thefirst image capturing parameter.

In some embodiments, method 1400 may further comprise analyzing at leastpart of the plurality of images obtained by Step 1410 to select a firstimage acquisition position, for example using Step 1320, and in responseto the determination that a change occurred in the particular area ofthe construction site by Step 1420 and the determination that a higherquality image is needed by Step 1430, Step 1440 may cause the imageacquisition robot to move to the first image acquisition position and tocapture from the first image acquisition position the at least one imageof the particular area of the construction site. In some embodiments,method 1400 may further comprise analyzing at least part of theplurality of images (for example, the first image and the second image,the second image, a different image, a part of an image, etc.) todetermine a type of the change that occurred in the particular area ofthe construction site between the first point in time and the secondpoint in time, for example as described above. Further, in response to afirst determined type of the change, Step 1440 may cause the imageacquisition robot to move to a first image acquisition position andcapture from the first image acquisition position the at least one imageof the particular area of the construction site, and in response to asecond determined type of the change, Step 1440 may cause the imageacquisition robot to move to a second image acquisition position andcapture from the second image acquisition position the at least oneimage of the particular area of the construction site, the second imageacquisition position may differ from the first image acquisitionposition.

In some embodiments, method 1400 may further comprise causing the imageacquisition robot to acquire an image of a second area of theconstruction site (the image may depict no part of the particular areaof the construction site), for example as described above in relation toStep 1440. In some examples, the second area of the construction siteand the particular area of the construction site may be at the same roomin the construction site, at different rooms in the construction site,at different apartments in the construction site, at different floors inthe construction site, at least a selected distance from each other (forexample, at least one meter, at least ten meters, etc.), adjunct to eachother, and so forth. Further, in some examples, the image of the secondarea of the construction site may be analyzed to determine whether toacquire the at least one image of the particular area of theconstruction site, for example as described above. Further, in someexamples, in response to a determination to acquire the at least oneimage of the particular area of the construction site, Step 1440 maycause the image acquisition robot to move to a particular imageacquisition position and capture from the particular image acquisitionposition the at least one image of the particular area of theconstruction site, and in response to a determination not to acquire theat least one image of the particular area of the construction site,causing the image acquisition robot to move to a particular imageacquisition position and withholding causing the image acquisition robotto capture the at least one image of the particular area of theconstruction site may be withheld and/or forgone. In one example, theacquiring of the image of a second area of the construction site by theimage acquisition robot may be performed from a second image acquisitionposition of the construction site, and method 1400 may further compriseanalyzing an electronic record associated with the construction site toselect the particular image acquisition position and the second imageacquisition position, for example as described above.

In some embodiments, the second image obtained by Step 1410 may be animage captured using the image acquisition robot from a first locationin the construction site, and Step 1440 may cause the image acquisitionrobot to acquire the at least one image of the particular area of theconstruction site from a second location in the construction site, thesecond location may differ from the first location and may be configuredto provide higher quality image of the particular area of theconstruction site. For example, the second location may be closer to theparticular area of the construction site. In another example, the secondlocation may be configured to reduce glare.

Tasks in the construction site have to be performed at a particularsequence. Performing the tasks in an incorrect sequence may causeconstruction errors, necessitate rework, incur costs, and/or causesafety related issues. The large number of construction workers andsubcontractors involves in the construction process makes theenforcement of the sequence of tasks oppressively burdensome, which inturn may slow and complicate the construction process. Automating themonitoring of the sequence of events may reduce construction errors,rework, costs, and so forth.

FIG. 15 illustrates an example of a method 1500 for monitoring sequenceof events in construction sites. In this example, method 1500 maycomprise: obtain a first image captured in a construction site using animage sensor, the first image corresponding to a first point in time(Step 1510); analyzing the first image to determine whether a firstevent occurred in the construction site prior to the first point in time(Step 1520); determining whether a second event occurred in theconstruction site prior to the first point in time (Step 1530); inresponse to a determination that the first event occurred in theconstruction site prior to the first point in time and a determinationthat the second event did not occur in the construction site prior tothe first point in time, providing a first notification (Step 1540); andin response to at least one of a determination that the first event didnot occur in the construction site prior to the first point in time anda determination that the second event occurred in the construction siteprior to the first point in time, forgoing providing the firstnotification (Step 1550). In some implementations, method 1500 maycomprise one or more additional steps, while some of the steps listedabove may be modified or excluded. In some implementations, one or moresteps illustrated in FIG. 15 may be executed in a different order and/orone or more groups of steps may be executed simultaneously and viceversa. In some examples, the first event may include an installation ofa first object in a particular area of the construction site, and/or thesecond event may include an installation of a second object in theparticular area of the construction site. In one example, the secondobject may comprise at least one of a gas pipe and an electrical wire.In one example, the first object may comprise a water pipe. In oneexample, the first object may comprise plaster. In one example, thefirst object may comprise one or more tiles. In some examples, thesecond event may include drying of a particular material in a selectedarea of the construction site. In some examples, the second event mayinclude an inspection event. In some examples, the second event mayinclude a rough-in inspection and the first event may include closing ofat least one of a wall and a ceiling with one or more wallboards. Insome examples, the second event may include an inspection of plumbingsystems and the first event may include installation of a particularfixture. In some examples, the second event may include a moisturebarrier inspection and the first event may include an installation of anexterior finishing material. In some examples, the second event mayinclude an insulation inspection and the first event may includecovering insulation. In some examples, the second event may include aninstallation of an underground duct and the first event may includebackfilling. In some examples, the first event may include backfillingand the second event may include an installation of at least one of anunderground duct, an underground fuel pipe, a conduit, a cable and apipe. In some examples, the second event may include placement ofreinforcement steel and the first event may include placing of concrete.In some examples, the second event may include excavating a trench andthe first event may include placing of concrete.

In some embodiments, Step 1510 may comprise obtaining a first imagecaptured in a construction site using an image sensor, the first imagemay correspond to a first point in time. Some non-limiting examples ofsuch first image may include an image captured using at least one of astationary camera positioned in the construction site, a mobilecapturing device positioned in the construction site, an imageacquisition robot, an image acquisition drone, a wearable capturingdevice worn by a person in the construction site, a color camera, agrayscale camera, a hyperspectral camera, a depth camera, a rangecamera, a stereo camera, an active stereo camera, a time-of-flightcamera, and so forth. In one example, Step 1510 may use Step 710 toaccess at least part of the first image. In another example, Step 1510may access at least part of the first image in a memory unit (such asmemory units 210, shared memory modules 410, memory 600, and so forth).In yet another example, Step 1510 may access at least part of the firstimage through a data communication network (such as communicationnetwork 130), for example using one or more communication devices (suchas communication modules 230, internal communication modules 440,external communication modules 450, and so forth). In an additionalexample, Step 1510 may access at least part of the first image using adatabase. In yet another example, Step 1510 may capture at least part ofthe first image, for example using an image sensor positioned in theconstruction site.

In some embodiments, Step 1520 may comprise analyzing the first imageobtained by Step 1510 to determine whether a first event occurred in theconstruction site prior to the first point in time corresponding to thefirst image obtained by Step 1510. Some non-limiting examples of suchfirst event may include an installation of an object (such as gas pipe,an electrical wire, a pipe, water pipe, electrical box, fixture, one ormore tiles, an underground duct, an underground fuel pipe, a conduit, acable, etc.) in a particular area of the construction site, anapplication of a material (such as plaster, paint, etc.) in a particulararea of the construction site, drying of a particular material in aselected area of the construction site, closing of at least one of awall and a ceiling with one or more wallboards, an installation of aparticular fixture, an installation of an exterior finishing material,covering insulation, backfilling, placement of reinforcement steel,placing of concrete, excavation, excavating a trench, marking of utilitylines and/or pipes, and so forth. In one example, a machine learningmodel may be trained using training examples to determine whether eventsoccurred in construction sites prior to selected points in time based onimages corresponding to the points in time, and Step 1520 may use thetrained machine learning model to analyze the first image obtained byStep 1510 and determine whether the first event occurred in theconstruction site prior to the first point in time. One example of suchtraining example may include an image of a portion of a constructionsite, together with a label indicating whether a particular eventoccurred in the portion of the construction site prior to a timecorresponding to the image.

In some examples, the first image obtained by Step 1510 may be analyzedto attempt to detect an object of a selected object type in a particulararea of the construction site, for example using an object detectionalgorithm. In response to a successful detection of an object of theselected type in the particular area of the construction site, Step 1520may determine that the first event occurred in the construction siteprior to the first point in time, and in response to a failure to detectan object of the selected type in the particular area of theconstruction site, Step 1520 may determine that the first event did notoccur in the construction site prior to the first point in time.

In some embodiments, Step 1530 may comprise determining whether a secondevent occurred in the construction site prior to the first point in timecorresponding to the first image obtained by Step 1510. Somenon-limiting examples of such second event may include an installationof an object (such as gas pipe, an electrical wire, a pipe, water pipe,electrical box, fixture, one or more tiles, an underground duct, anunderground fuel pipe, a conduit, a cable, etc.) in a particular area ofthe construction site, an application of a material (such as plaster,paint, etc.) in a particular area of the construction site, drying of aparticular material in a selected area of the construction site, aninspection event, a rough-in inspection, an inspection of plumbingsystems, a moisture barrier inspection, an insulation inspection,closing of at least one of a wall and a ceiling with one or morewallboards, installation of a particular fixture, an installation of anexterior finishing material, covering insulation, backfilling, placementof reinforcement steel, placing of concrete, excavation, excavating atrench, marking of utility lines and/or pipes, and so forth. In someexamples, Step 1530 may comprise analyzing one or more images capturedin the construction site before the first point in time to determinewhether the second event occurred in the construction site prior to thefirst point in time. For example, Step 1530 may be analyzed using anevent detection algorithm to identify an occurrence of the second eventwhile the one or more images are captured, and therefore determine thatthe second event occurred in the construction site prior to the firstpoint in time. In some examples, Step 1530 may comprise analyzing thefirst image to determine whether the second event occurred in theconstruction site prior to the first point in time. For example, Step1530 may analyze the first image to identify a result of the secondevent, and therefore determine that the second event occurred in theconstruction site prior to the first point in time. In another example,Step 1530 may analyze the first image to identify an installed object inthe first image, and therefore determine that an installation event ofthe object occurred in the construction site prior to the first point intime. In some examples, a second image captured in the construction sitemay be obtained, the second image may correspond to a second point intime, and the first point in time may be earlier than the second pointin time. Further, the first image and the second image may be analyzedto determine whether the second event occurred in the construction sitebetween the first point in time and the second point in time (forexample as described above). Further, in response to a determinationthat the second event occurred in the construction site between thefirst point in time and the second point in time, Step 1530 maydetermine that the second event did not occur in the construction siteprior to the first point in time.

In some examples, Step 1530 may comprise analyzing an electronic recordassociated with the construction site to determine whether the secondevent occurred in the construction site prior to the first point intime. For example, Step 1530 may analyze a progress record associatedwith the construction site to determine whether the second eventoccurred in the construction site prior to the first point in time, forexample by identifying a progress report in the progress record thatindicates an occurrence of the second event. In another example, Step1530 may analyze a project schedule associated with the constructionsite to determine whether the second event occurred in the constructionsite prior to the first point in time, for example by identifying a task(such as a scheduled task, a completed task, etc.) in the projectschedule that indicates an occurrence of the second event. In yetanother example, Step 1530 may analyze a financial record associatedwith the construction site to determine whether the second eventoccurred in the construction site prior to the first point in time, forexample by identifying a financial transaction in the financial recordthat indicates an occurrence of the second event.

In some embodiments, Step 1540 may comprise, in response to adetermination by Step 1520 that the first event occurred in theconstruction site prior to the first point in time and a determinationby Step 1530 that the second event did not occur in the constructionsite prior to the first point in time, providing a first notification.For example, Step 1540 may provide the first notification to a user, toanother process, to an external device, and so forth. In one example,Step 1540 may provide the first notification to a user as a visualoutput, an audio output, a tactile output, any combination of the above,and so forth. In one example, Step 1540 may provide the firstnotification to a user using the apparatus analyzing the information(for example, an apparatus performing at least part of Step 1520 and/orStep 1530), through another apparatus (such as a mobile deviceassociated with the user, mobile phone 111, tablet 112, and personalcomputer 113, etc.), and so forth. In some examples, the firstnotification provided by Step 1540 may include at least one of anindication of at least one of the first event and the second event,information related to the capturing of the first image obtained by Step1510 (such as capturing time, capturing position, capturing method,etc.), and so forth.

In some embodiments, Step 1550 may comprise, in response to at least oneof a determination by Step 1520 that the first event did not occur inthe construction site prior to the first point in time and adetermination by Step 1530 that the second event occurred in theconstruction site prior to the first point in time, forgoing providingthe first notification.

In some embodiments, method 1500 may further comprise identifying asafety issue related to a prospective event in the construction sitebased on the determination by Step 1520 that the first event occurred inthe construction site prior to the first point in time and thedetermination by Step 1530 that the second event did not occur in theconstruction site prior to the first point in time. For example, thefirst event may include preparation for at least one of excavation andtrenching, the second event may include marking of utility lines and/orpipes. In one example, the first notification provided by Step 1540 mayinclude an indication of the identified safety issue. In someembodiments, method 1500 may further comprise identifying a constructionerror based on the determination by Step 1520 that the first eventoccurred in the construction site prior to the first point in time andthe determination by Step 1530 that the second event did not occur inthe construction site prior to the first point in time. In one example,the first notification provided by Step 1540 may include an indicationof the identified construction error. For example, the firstnotification provided by Step 1540 may be configured to cause acorrection of the identified construction error.

Tasks in the construction site have to be performed at a particularsequence. Performing the tasks in an incorrect sequence may causeconstruction errors, necessitate rework, incur costs, and/or causesafety related issues. The large number of construction tasks, and thelarge number of factors that may affect the selection of the correctsequence for the tasks, makes the selection of the sequence of tasksoppressively burdensome. Automating the determination of the desiredsequence of tasks may reduce construction errors, rework, costs, and soforth.

FIG. 16 illustrates an example of a method 1600 for determining scheduleconstraints from construction plans. In this example, method 1600 maycomprise: obtaining at least part of a construction plan for aconstruction site (Step 1610); analyzing the at least part of theconstruction plan to identify a first object of a first object typeplanned to be constructed in the construction site, a first element of afirst element type planned to be connected to the first object, and asecond element of a second element type planned to be connected to thefirst object (Step 1620); based on the first object type, determining afirst plurality of construction tasks for the construction of the firstobject, the first plurality of construction tasks comprises at least afirst construction task and a second construction task (Step 1630);based on the first element type, determining a second plurality ofconstruction tasks for the construction of the first object and relatedto the first element, the second plurality of construction taskscomprises at least a third construction task and a fourth constructiontask (Step 1640); based on the second element type, determining a thirdplurality of construction tasks for the construction of the first objectand related to the second element, the third plurality of constructiontasks comprises at least a fifth construction task and a sixthconstruction task (Step 1650); and based on the first element type andthe second element type, determining that the first construction taskneeds to be performed before the third construction task, that the thirdconstruction task needs to be performed before the fifth constructiontask, that the fifth construction task needs to be performed before thesecond construction task, and that the second construction task needs tobe performed before the fourth construction task and the sixthconstruction task (Step 1660). In some implementations, method 1600 maycomprise one or more additional steps, while some of the steps listedabove may be modified or excluded. In some implementations, one or moresteps illustrated in FIG. 16 may be executed in a different order and/orone or more groups of steps may be executed simultaneously and viceversa.

Some non-limiting examples of such elements (such as the first element,the second element, etc.) may comprise a water element, an electricalelement, a sink, an electrical outlet, a water pipe, a tunnel,electrical wires, studs, a gas outlet, a gas pipe, and so forth. Somenon-limiting examples of such first object may include at least part ofa wall planned to be constructed in the construction site, at least partof a masonry wall planned to be constructed in the construction site, atleast part of a stud wall planned to be constructed in the constructionsite, at least part of a room planned to be constructed in theconstruction site, at least part of a wall planned to be constructed inthe construction site, at least part of a floor planned to beconstructed in the construction site and at least part of a ceilingplanned to be constructed in the construction site, and so forth. In oneexample, an object (such as the first object) may comprise an objectwith a surface, and a task (such as the first task, the second task,etc.) may comprise building at least part of the object, covering atleast part of the surface (for example, with at least one of plaster,paint and tiles), finishes, and so forth. In one example, an object(such as the first object) may comprise a wall, and a task (such as thefirst task, the second task, etc.) may comprise building at least partof the wall, plastering the wall, painting the wall, placing tiles onthe wall, building wall frames, installing plaster guides, installingtop tracks, installing studs, installing insulation material, installingboards, finishes, and so forth. In one example, one of the elements(such as the first element, the second element, etc.) may comprise awater element, and a task (such as the third task, the fourth task, thefifth task, the sixth task, etc.) may comprise at least one of placing awater pipe in at least part of the first object, installing waterjunction, placing the water element, and so forth. In one example, oneof the elements (such as the first element, the second element, etc.)may comprise an electrical element, and a task (such as the third task,the fourth task, the fifth task, the sixth task, etc.) may comprise atleast one of placing a tunnel for electrical wires in at least part ofthe first element, placing the electrical element, installing conduit,installing electric junction box, installing support, installing outlet,installing cover plate, and so forth. In one example, one of theelements (such as the first element, the second element, etc.) maycomprise a gas element, and a task (such as the third task, the fourthtask, the fifth task, the sixth task, etc.) may comprise, installing gaspipes, installing gas junction box, installing gas outlet, installingcovering plate, and so forth. In one example, one of the elements (suchas the first element, the second element, etc.) may comprise a sink, anda task (such as the third task, the fourth task, the fifth task, thesixth task, etc.) may comprise placing a water pipe in the at least partof the first object, placing the sink, and so forth. In one example, oneof the elements (such as the first element, the second element, etc.)may comprise an electrical outlet, and a task (such as the third task,the fourth task, the fifth task, the sixth task, etc.) may compriseplacing a tunnel for electrical wires in the at least part of the firstobject, placing the electrical outlet, and so forth. In some examples,the first element may comprise a water element planned to be connectedto the first object, the second element may comprise an electricalelement planned to be connected to the first object, the first task maycomprise building at least part of the first object, the second task maycomprise covering at least part of the first object with at least one ofplaster, paint and tiles, the third task comprises placing a water pipein at least part of the first object, the fourth task may compriseplacing the water element, the fifth task may comprise placing a tunnelfor electrical wires in at least part of the first element, and thesixth task may comprise placing the electrical element. In someexamples, the first object may comprise at least part of a wall plannedto be constructed in the construction site, the first element maycomprise a sink planned to be connected to the at least part of thewall, the second element may comprise an electrical outlet planned to beconnected to the at least part of the wall, the first task may comprisebuilding the at least part of the wall, the second task may compriseplastering the at least part of the wall, the third task may compriseplacing a water pipe in the at least part of the wall, the fourth taskmay comprise placing the sink, the fifth task may comprise placing atunnel for electrical wires in the at least part of the wall, and thesixth task may comprise placing the electrical outlet. In some examples,the first object may comprise at least one of at least part of a roomplanned to be constructed in the construction site, at least part of awall planned to be constructed in the construction site, at least partof a floor planned to be constructed in the construction site and atleast part of a ceiling planned to be constructed in the constructionsite.

In some embodiments, Step 1610 may comprise obtaining at least part of aconstruction plan for a construction site. In one example, Step 1610 mayuse Step 920 to obtain the at least part of the construction plan forthe construction site. In another example, Step 1610 may read the atleast part of the construction plan for the construction site from amemory unit (such as memory units 210, shared memory modules 410, memory600, and so forth). In yet another example, Step 1610 may receive the atleast part of the construction plan for the construction site through adata communication network (such as communication network 130), forexample using one or more communication devices (such as communicationmodules 230, internal communication modules 440, external communicationmodules 450, and so forth). In an additional example, Step 1610 mayaccess the at least part of the construction plan for the constructionsite through a database.

In some embodiments, Step 1620 may comprise analyzing the at least partof the construction plan to identify a first object of a first objecttype planned to be constructed in the construction site, a first elementof a first element type planned to be connected to the first object, anda second element of a second element type planned to be connected to thefirst object. For example, the at least part of the construction planmay include a data structure of objects and/or elements, and Step 1620may analyze the data structure to identify the first object and/or thefirst element and/or the second element. In another example, the atleast part of the construction plan may include an architectural plan,and Step 1620 may analyze the architectural plan to identify the firstobject and/or the first element and/or the second element.

In some examples, Step 1620 may analyze the at least part of theconstruction plan obtained by Step 1610 to identify spatialrelationships among the first object, the first element and the secondelement. For example, the at least part of the construction plan mayinclude a data structure of relations among objects and/or elements, andStep 1620 may analyze the data structure to identify the spatialrelationship. In another example, the at least part of the constructionplan may include a position of objects and/or elements, and the Step1610 may identify spatial relationships based on distances between theobjects and/or elements.

In some embodiments, Step 1630 may comprise determining, based on thefirst object type, a first plurality of construction tasks for theconstruction of the first object, the first plurality of constructiontasks may comprise at least a first construction task and a secondconstruction task. For example, in response to one value of the firstobject type, Step 1630 may determine one first plurality of constructiontasks, including one particular first construction task and oneparticular second construction task, and in response to a differentvalue of the first object type, Step 1630 may determine a differentfirst plurality of construction tasks, including a different firstconstruction task and/or a different second construction task. In oneexample, Step 1630 may use the first object type to access a datastructure that connects object types to construction tasks and obtainthe from the data structure the first plurality of construction tasksconnected to the first object type in the data structure.

In some embodiments, Step 1640 may comprise determining, based on thefirst element type, a second plurality of construction tasks for theconstruction of the first object and related to the first element, thesecond plurality of construction tasks may comprise at least a thirdconstruction task and a fourth construction task. For example, inresponse to one value of the first element type, Step 1640 may determineone second plurality of construction tasks, including one particularthird construction task and one particular fourth construction task, andin response to a different value of the first element type, Step 1640may determine a different second plurality of construction tasks,including a different third construction task and/or a different fourthconstruction task. In one example, Step 1640 may use the first elementtype to access a data structure that connects object types toconstruction tasks and obtain the from the data structure the secondplurality of construction tasks connected to the first element type inthe data structure.

In some embodiments, Step 1650 may comprise determining, based on thesecond element type, a third plurality of construction tasks for theconstruction of the first object and related to the second element, thethird plurality of construction tasks may comprise at least a fifthconstruction task and a sixth construction task. For example, inresponse to one value of the second element type, Step 1650 maydetermine one third plurality of construction tasks, including oneparticular fifth construction task and one particular sixth constructiontask, and in response to a different value of the second element type,Step 1650 may determine a different third plurality of constructiontasks, including a different fifth construction task and/or a differentsixth construction task. In one example, Step 1650 may use the secondelement type to access a data structure that connects object types toconstruction tasks and obtain the from the data structure the thirdplurality of construction tasks connected to the second element type inthe data structure.

In some embodiments, Step 1660 may comprise determining, based on thefirst element type and the second element type, that the firstconstruction task needs to be performed before the third constructiontask, that the third construction task needs to be performed before thefifth construction task, that the fifth construction task needs to beperformed before the second construction task, and that the secondconstruction task needs to be performed before the fourth constructiontask and the sixth construction task. In some examples, in response to afirst pair of the first element type and the second element type, Step1660 may determine a first sequence of tasks, and in response to asecond pair of the first element type and the second element type, Step1660 may determine a second sequence of tasks, the second sequence maydiffer from the first sequence. For example, in the first sequence oftasks, task A may need to be performed before task B, while in thesecond sequence of tasks, task B may need to be performed before task A.In another example, in the first sequence of tasks, task A may need tobe performed before task B, while in the second sequence of tasks, taskA may be performed before, concurrently or after task B.

In some embodiments, Step 1660 may further base the determination of thesequence of tasks on the first object type. For example, Step 1660 maycomprise determining, based on the first object type, the first elementtype and the second element type, that the first construction task needsto be performed before the third construction task, that the thirdconstruction task needs to be performed before the fifth constructiontask, that the fifth construction task needs to be performed before thesecond construction task, and that the second construction task needs tobe performed before the fourth construction task and the sixthconstruction task. In some examples, in response to one first objecttype, Step 1660 may determine a first sequence of tasks, and in responseto a different first object type, Step 1660 may determine a secondsequence of tasks, the second sequence may differ from the firstsequence. In some examples, the first object may include at least partof a wall, in response to the wall being a masonry wall, Step 1660 maydetermine a first sequence of tasks, and in response to the wall being astud wall, Step 1660 may determine a second sequence of tasks, thesecond sequence may differ from the first sequence. In some examples, inresponse to the first object type being a floor, Step 1660 may determinea first sequence of tasks, and in response to the first object typebeing a wall, Step 1660 may determine a second sequence of tasks, thesecond sequence may differ from the first sequence. For example, in thefirst sequence of tasks, task A may need to be performed before task B,while in the second sequence of tasks, task B may need to be performedbefore task A. In another example, in the first sequence of tasks, taskA may need to be performed before task B, while in the second sequenceof tasks, task A may be performed before, concurrently or after task B.

In some embodiments, Step 1660 may further base the determination of thesequence of tasks on the dimension of the first object. For example,Step 1660 may comprise determining, based on the dimension of the firstobject, the first element type and the second element type, that thefirst construction task needs to be performed before the thirdconstruction task, that the third construction task needs to beperformed before the fifth construction task, that the fifthconstruction task needs to be performed before the second constructiontask, and that the second construction task needs to be performed beforethe fourth construction task and the sixth construction task. In someexamples, in response to one dimension of the first object, Step 1660may determine a first sequence of tasks, and in response to a differentdimension of the first object, Step 1660 may determine a second sequenceof tasks, the second sequence may differ from the first sequence. Forexample, in the first sequence of tasks, task A may need to be performedbefore task B, while in the second sequence of tasks, task B may need tobe performed before task A. In another example, in the first sequence oftasks, task A may need to be performed before task B, while in thesecond sequence of tasks, task A may be performed before, concurrentlyor after task B.

In some embodiments, Step 1620 may analyze the at least part of theconstruction plan obtained by Step 1610 to identify spatialrelationships among the first object, the first element and the secondelement, for example as described above, and Step 1660 may further basethe determination of the sequence of tasks on the identified spatialrelationships. For example, Step 1660 may comprise determining, based onthe identified spatial relationships, the first element type and thesecond element type, that the first construction task needs to beperformed before the third construction task, that the thirdconstruction task needs to be performed before the fifth constructiontask, that the fifth construction task needs to be performed before thesecond construction task, and that the second construction task needs tobe performed before the fourth construction task and the sixthconstruction task. In some examples, in response to one set ofidentified spatial relationships, Step 1660 may determine a firstsequence of tasks, and in response to a different set of identifiedspatial relationships, Step 1660 may determine a second sequence oftasks, the second sequence may differ from the first sequence. Forexample, in the first sequence of tasks, task A may need to be performedbefore task B, while in the second sequence of tasks, task B may need tobe performed before task A. In another example, in the first sequence oftasks, task A may need to be performed before task B, while in thesecond sequence of tasks, task A may be performed before, concurrentlyor after task

B.

In some embodiments, Step 1620 may analyze the at least part of theconstruction plan obtained by Step 1610 to identify a second object, forexample as described above, and Step 1660 may further base thedetermination of the sequence of tasks on the identified second firstobject. For example, Step 1660 may comprise determining, based on theidentified second object, the first element type and the second elementtype, that the first construction task needs to be performed before thethird construction task, that the third construction task needs to beperformed before the fifth construction task, that the fifthconstruction task needs to be performed before the second constructiontask, and that the second construction task needs to be performed beforethe fourth construction task and the sixth construction task. In someexamples, in response to one identified second object, Step 1660 maydetermine a first sequence of tasks, and in response to a differentidentified second object, Step 1660 may determine a second sequence oftasks, the second sequence may differ from the first sequence. Forexample, in the first sequence of tasks, task A may need to be performedbefore task B, while in the second sequence of tasks, task B may need tobe performed before task A. In another example, in the first sequence oftasks, task A may need to be performed before task B, while in thesecond sequence of tasks, task A may be performed before, concurrentlyor after task B.

In some embodiments, an image captured in the construction site may beanalyzed, for example as described herein (for example in relation toStep 720, Step 730, Step 930, Step 940, Step 1120, Step 1220, Step 1320,Step 1420, Step 1430, Step 1520, Step 1530, Step 1720, Step 1820, Step1830, Step 1902, Step 1910, Step 1916, Step 1922, Step 1928, etc.), andStep 1660 may further base the determination of the sequence of tasks ona result of the analysis of the image. For example, Step 1660 maycomprise determining, based on the result of the analysis of the image,the first element type and the second element type, that the firstconstruction task needs to be performed before the third constructiontask, that the third construction task needs to be performed before thefifth construction task, that the fifth construction task needs to beperformed before the second construction task, and that the secondconstruction task needs to be performed before the fourth constructiontask and the sixth construction task. In some examples, in response to afirst result of the analysis of the image, Step 1660 may determine afirst sequence of tasks, and in response to a second result of theanalysis of the image, Step 1660 may determine a second sequence oftasks, the second sequence may differ from the first sequence. Forexample, in the first sequence of tasks, task A may need to be performedbefore task B, while in the second sequence of tasks, task B may need tobe performed before task A. In another example, in the first sequence oftasks, task A may need to be performed before task B, while in thesecond sequence of tasks, task A may be performed before, concurrentlyor after task B.

In some embodiments, method 1600 may further comprise providinginformation indicative of the sequence of tasks determined by Step 1660.For example, the information indicative of the sequence of tasks may beprovided to a user, may be transmitted to an external device, may betransmitted over a data communication network (such as communicationnetwork 130), for example using one or more communication devices (suchas communication modules 230, internal communication modules 440,external communication modules 450, and so forth), may be stored in amemory unit (such as memory units 210, shared memory modules 410, memory600, and so forth), and so forth.

In some embodiments, a plurality of images captured in the constructionsite may be obtained, for example using Step 710 and/or Step 1410. Theplurality of images may be analyzed to determine whether an actualperformance sequence of tasks at the construction site comply with thedetermined sequence of tasks, for example using method 1500. Further, insome examples, in response to a determination that the actualperformance sequence of tasks do not comply with the determined sequenceof tasks, a first notification may be provided (for example as describedabove), and in response to a determination that the actual performancesequence of tasks comply with the determined sequence of tasks,providing the first notification may be withheld and/or forgone.

In some embodiments, at least one image captured in the constructionsite may be obtained, for example using Step 710 and/or Step 1410. Theat least one image may be analyzed to determine that at a particularpoint in time a performance of the second construction task began and aperformance of the fifth construction task is incomplete, for exampleusing Step 1520 and/or Step 1530. Further, in some examples, in responseto the determination that at the particular point in time theperformance of the second construction task began and the performance ofthe fifth construction task is incomplete, a notification may beprovided, for example as described above. In one example, thenotification may be configured to cause a halt in the performance of thesecond construction task.

In some embodiments, at least one image captured in the constructionsite may be obtained, for example using Step 710 and/or Step 1410. Theat least one image may be analyzed to identify at least one taskperformed in the construction site, for example using Step 1520.Further, in some examples, for example based on the identified at leastone task performed in the construction site and the sequence of tasksdetermined by Step 1660, a prospective task may be selected. Further, insome examples, an indication of the selected prospective task may beprovided. For example, the indication of the selected prospective taskmay be provided to a user, may be transmitted to an external device, maybe transmitted over a data communication network (such as communicationnetwork 130), for example using one or more communication devices (suchas communication modules 230, internal communication modules 440,external communication modules 450, and so forth), may be stored in amemory unit (such as memory units 210, shared memory modules 410, memory600, and so forth), and so forth. In one example, the indication of theselected prospective task may be configured to cause a performance ofthe selected prospective task.

In some embodiments, an electronic record associated with theconstruction site may be analyzed to identify at least one taskperformed in the construction site, for example using Step 1530.Further, based on the identified at least one task performed in theconstruction site and the sequence of tasks determined by Step 1660, aprospective task may be selected. Further, in some examples, anindication of the selected prospective task may be provided, for exampleas described above. In one example, the indication of the selectedprospective task may be configured to cause a performance of theselected prospective task. In one example, the electronic record mayinclude a financial record associated with the construction site. In oneexample, the electronic record may be a progress record associated withthe construction site.

In some embodiments, the at least part of the construction plan may beanalyzed to identify a second object of the first object type planned tobe constructed in the construction site, for example as described above.Further, in some examples, a fourth plurality of construction tasks forthe construction of the second object may be identified, for example asdescribed above, the fourth plurality of construction tasks may compriseat least a particular construction task. The at least part of theconstruction plan may be analyzed to determine whether the first objectis bigger than the second object. In one example, in response to adetermination that the first object is bigger than the second object,determining that the first construction task needs to be performedbefore the particular construction task. In one example, in response toa determination that the second object is bigger than the first object,determining that the particular construction task needs to be performedbefore the first construction task.

In some embodiments, the at least part of the construction plan may beanalyzed to identify a second object of the first object type planned tobe constructed in the construction site, for example as described above.Further, the determination of the sequence of tasks may be further basedon the second object.

Purported capturing parameters of construction site images (such as timeof capturing, position, camera type, camera configuration, etc.) may beinaccurate, for example due to human errors, indoor positioning system,frauds, and so forth. Relaying on images with false purported capturingparameters may cause an incomplete visual documentation of theconstruction site, an inaccurate understanding of the construction siteand process, and in turn, misleading insights and recommendations aboutthe construction site and process. Verification of the purportedcapturing parameters may avoid or reduce these risks.

FIGS. 17A, 17B, 17C, 17D and 17E illustrate an example of a method 1700for verifying purported parameters of capturing of images ofconstruction sites. In the example of FIG. 17A, method 1700 maycomprise: obtaining an image of a construction site and an indication ofat least one purported parameter of a capturing of the image (Step1710); analyzing the image to determine whether the indicated at leastone purported parameter of the capturing of the image is consistent witha visual content of the image (Step 1720); in response to adetermination that the indicated at least one purported parameter of thecapturing of the image is consistent with the visual content of theimage, causing a first update to an electronic record associated withthe construction site based on an analysis of the image (Step 1730); andin response to a determination that the indicated at least one purportedparameter of the capturing of the image is inconsistent with the visualcontent of the image, providing first information to a user (Step 1740).In the example of FIG. 17B, implementation 1720A of step 1720 maycomprise: analyze the image to determine whether an indicated locationassociated with the image included in the indicated at least onepurported parameter of the capturing of the image is consistent with thevisual content of the image (Step 1722A); and basing the determinationof whether the indicated at least one purported parameter of thecapturing of the image is consistent with the visual content of theimage on the determination of whether the indicated location isconsistent with the visual content of the image (Step 1724A). In theexample of FIG. 17C, implementation 1720B of step 1720 may comprise:analyze the image to determine whether an indicated first point in timeincluded in the indicated at least one purported parameter of thecapturing of the image is consistent with the visual content of theimage (Step 1722B); and basing the determination of whether theindicated at least one purported parameter of the capturing of the imageis consistent with the visual content of the image on the determinationof whether the indicated first point in time is consistent with thevisual content of the image (Step 1724B). In the example of FIG. 17D,implementation 1720C of step 1720 may comprise: information indicativeof a state of at least part of the construction site at a second pointin time (Step 1721C); analyzing the image to attempt to identify aninconsistency between the indicated state of the at least part of theconstruction site at the second point in time and the visual content ofthe image based on the image being associated with the first point intime (Step 1722C); and basing the determination of whether the indicatedat least one purported parameter of the capturing of the image isconsistent with the visual content of the image on an identification ofthe inconsistency between the state of the construction site at thesecond point in time and the visual content of the image (Step 1724C).In the example of FIG. 17E, implementation 1720D of step 1720 maycomprise: analyzing the image to determine whether an indicated type ofimage capturing device included in the indicated at least one purportedparameter of the capturing of the image is consistent with the visualcontent of the image (Step 1722D); and basing the determination ofwhether the indicated at least one purported parameter of the capturingof the image is consistent with the visual content of the image on thedetermination of whether the indicated type of image capturing device isconsistent with the visual content of the image (Step 1724D). In someimplementations, method 1700 may comprise one or more additional steps,while some of the steps listed above may be modified or excluded. Insome implementations, one or more steps illustrated in FIGS. 17A, 17B,17C, 17D and 17E may be executed in a different order and/or one or moregroups of steps may be executed simultaneously and vice versa. In someexamples, method 1700 may further comprise, in response to thedetermination by Step 1720 that the indicated at least one purportedparameter of the capturing of the image is consistent with the visualcontent of the image, forgoing providing first information to a user. Insome examples, method 1700 may further comprise, in response to thedetermination by Step 1720 that the indicated at least one purportedparameter of the capturing of the image is inconsistent with the visualcontent of the image, forgoing causing the first update to theelectronic record associated with the construction site.

In some embodiments, Step 1710 may comprise obtaining an image of aconstruction site and an indication of at least one purported parameterof a capturing of the image. For example, Step 1710 may use 710 toobtain at least part of the image. In another example, Step 1710 mayread at least part of the image and/or at least part of the indicationfrom a memory unit (such as memory units 210, shared memory modules 410,memory 600, and so forth). In yet another example, Step 1710 may receiveat least part of the image and/or at least part of the indicationthrough a data communication network (such as communication network130), for example using one or more communication devices (such ascommunication modules 230, internal communication modules 440, externalcommunication modules 450, and so forth). In an additional example, Step1710 may access at least part of the image and/or at least part of theindication through a database.

In some embodiments, Step 1720 may comprise analyzing the image obtainedby Step 1710 to determine whether the indicated at least one purportedparameter of the capturing of the image (by the indication obtained byStep 1710) is consistent with a visual content of the image. In oneexample, a machine learning model may be trained using training examplesto determine whether visual contents of images are consistent withpurported parameters of the capturing of the images, and

Step 1720 may use the trained machine learning model to analyze theimage obtained by Step 1710 to determine whether the indicated at leastone purported parameter of the capturing of the image is consistent witha visual content of the image. In one example, Step 1720 may use Step1722A and Step 1724A to analyzing the image obtained by Step 1710 todetermine whether the indicated at least one purported parameter of thecapturing of the image (by the indication obtained by Step 1710) isconsistent with a visual content of the image. In one example, Step 1720may use Step 1722B and Step 1724B to analyzing the image obtained byStep 1710 to determine whether the indicated at least one purportedparameter of the capturing of the image (by the indication obtained byStep 1710) is consistent with a visual content of the image. In oneexample, Step 1720 may use Step 1721C, Step 1722C and Step 1724C toanalyzing the image obtained by Step 1710 to determine whether theindicated at least one purported parameter of the capturing of the image(by the indication obtained by Step 1710) is consistent with a visualcontent of the image. In one example, Step 1720 may use Step 1722D andStep 1724D to analyzing the image obtained by Step 1710 to determinewhether the indicated at least one purported parameter of the capturingof the image (by the indication obtained by Step 1710) is consistentwith a visual content of the image.

In some embodiments, Step 1730 may comprise, for example in response toa determination by Step 1720 that the indicated at least one purportedparameter of the capturing of the image is consistent with the visualcontent of the image, causing a first update to an electronic recordassociated with the construction site based on an analysis of the imageobtained by Step 1710. For example, Step 1730 may use method 1100 and/orStep 1130 to cause the first update to the electronic record associatedwith the construction site based on an analysis of the image obtained byStep 1710. In another example, Step 1730 may update the electronicrecord associated with the construction site in a memory unit (such asmemory units 210, shared memory modules 410, memory 600, and so forth).In yet another example, Step 1730 may update the electronic recordassociated with the construction site on an external device, for examplethrough a data communication network (such as communication network130), for example using one or more communication devices (such ascommunication modules 230, internal communication modules 440, externalcommunication modules 450, and so forth). In an additional example, Step1730 may update the electronic record associated with the constructionsite in a database. In one example, the first update to the electronicrecord associated with the construction site of Step 1730 may comprisean update to an as-built model associated with the construction sitebased on an analysis of the image obtained by Step 1710, may comprise anupdate to a progress record associated with the construction site basedon an analysis of the image obtained by Step 1710, may comprise anupdate to a project schedule associated with the construction site basedon an analysis of the image obtained by Step 1710, and so forth.

In some embodiments, Step 1740 may comprise, for example in response toa determination by Step 1720 that the indicated at least one purportedparameter of the capturing of the image is inconsistent with the visualcontent of the image, providing first information to a user. Forexample, the provided first information may comprise an indication ofthe determined inconsistency, may comprise an indication of a suspectfraud, may comprise an indication of a wrongly positioned image sensor,may comprise an indication of a wrongly positioned beacon of an indoorpositioning system, may comprise an indication of a misconfigured clock,may comprise information related to the capturing of the image obtainedby Step 1710 (such as capturing time, capturing position, capturingmethod, etc.), may comprise information related to the at least onepurported parameter, and so forth. In some examples, Step 1740 mayprovide the first information to a user, to another process, to anexternal device, and so forth. In one example, Step 1740 may provide thefirst information to a user as a visual output, an audio output, atactile output, any combination of the above, and so forth. In oneexample, Step 1740 may provide the first information to a user using theapparatus analyzing the information (for example, an apparatusperforming at least part of Step 1720), using the apparatus capturingthe image obtained by Step 1710, through another apparatus (such as amobile device associated with the user, mobile phone 111, tablet 112,and personal computer 113, etc.), and so forth.

In some embodiments, the indicated at least one purported parameter ofthe capturing of the image may comprise an indication of a locationassociated with the image obtained by Step 1710. For example, theindicated location may be associated with a capturing location of theimage, may be associated with a location of an object depicted in theimage, may be based on information from a positioning system (forexample from an indoor positioning system), may be based on informationreceived from a human user, and so forth. In some examples, Step 1722Amay analyze the image obtained by Step 1710 to determine whether theindicated location is consistent with the visual content of the image,for example as described below, and Step 1724A may base thedetermination of whether the indicated at least one purported parameterof the capturing of the image is consistent with the visual content ofthe image on the determination of whether the indicated location isconsistent with the visual content of the image. For example, inresponse to a determination that the indicated location is consistentwith the visual content of the image, Step 1724A (and/or Step 1720) maydetermine that the indicated at least one purported parameter of thecapturing of the image is consistent with the visual content of theimage, and in response to a determination that the indicated location isinconsistent with the visual content of the image, 1724A (and/or Step1720) may determine that the indicated at least one purported parameterof the capturing of the image is inconsistent with the visual content ofthe image. In some examples, Step 1730 may base the first update to theelectronic record associated with the construction site on the indicatedlocation. In some examples, Step 1740 may base the first informationprovided to the user on the indicated location.

In one example, Step 1722A may analyze the image obtained by Step 1710to determine a location associated with it (such as a capturingposition, a position of an object within depicted in the image, etc.),for example using visual odometry algorithms, and may compare thedetermined location with the indicated location to determine whether theindicated location is consistent with the visual content of the image.In another example, a machine learning model may be trained usingtraining examples to determine whether images are consistent withspecified locations, and Step 1722A may use the trained machine learningmodel to analyze the image obtained by Step 1710 and the indication ofthe location to determine whether the indicated location is consistentwith the visual content of the image. One example of such trainingexample may include a particular image and an indication of a particularlocation, together with a label indicating whether the visual content ofthe particular location is consistence with the particular location. Insome examples, Step 1722A may base the determination of whether theindicated location is consistent with the visual content of the image onat least one of an analysis of a construction plan associated with theconstruction site, an analysis of a project schedule associated with theconstruction site, an analysis of a progress record associated with theconstruction site, an analysis of an as-built model associated with theconstruction site, and so forth.

In some examples, the indication of the location may comprise anindication of a unit of the construction site (such as an indication ofa room, an indication of an apartment, an indication of a floor, and soforth). Further, in some examples, Step 1722A may analyze the imageobtained by Step 1710 to determine whether the indicated unit of theconstruction site is consistent with the visual content of the image.For example, a machine learning model may be trained using trainingexamples to determine whether units are consistent with images, and Step1722A may use the trained machine learning model to analyze the imageobtained by Step 1710 and the indication of the unit to determinewhether the indicated unit of the construction site is consistent withthe visual content of the image. One example of such training examplemay include a particular image together with an indication of aparticular unit, together with a label indicating whether the visualcontent of the particular image is consistent with the particular unit.Further, Step 1722A may base the determination of whether the indicatedlocation is consistent with the visual content of the image on thedetermination of whether the indicated unit of the construction site isconsistent with the visual content of the image. In some examples, Step1722A may analyze the image obtained by Step 1710 to determine aposition of a particular object in the image, for example as describedabove. Further, in response to a first determined position, Step 1722Amay determine that the indicated location is consistent with the visualcontent of the image, and in response to a second determined position,Step 1722A may determine that the indicated location is inconsistentwith the visual content of the image. In some examples, Step 1722A mayanalyze the image obtained by Step 1710 to determine whether aparticular object is depicted in the image (for example using Step 1120,using object detection algorithms, etc.), in response to a determinationthat the particular object is depicted in the image, Step 1722A maydetermine that the indicated location is consistent with the visualcontent of the image, and in response to a determination that theparticular object is not depicted in the image, Step 1722A may determinethat the indicated location is inconsistent with the visual content ofthe image.

In some examples, Step 1722A may analyze the image obtained by Step 1710to determine whether a particular object is depicted in at a particularlocation in the image (for example using Step 1120, using objectdetection algorithms, etc.), and/or to determine whether the particularlocation is occluded in the image. For example, a machine learning modelmay be trained using training examples to determine whether indicatedlocations are occluded in the image, and Step 1722A may use the trainedmachine learning model to analyze the image obtained by Step 1710 todetermine whether the particular location is occluded in the image. Oneexample of such training example may include a particular image and anindication of a location, together with a label indicating whether theindicated location is occluded in the particular image. Further, inresponse to a determination that the particular object is depicted inthe image, Step 1722A may determine that the indicated location isconsistent with the visual content of the image, in response to adetermination that the particular location is occluded in the image,Step 1722A may determine that the indicated location is consistent withthe visual content of the image, and in response to a determination thatthe particular object is not depicted in the image and the particularlocation is not occluded in the image, Step 1722A may determine that theindicated location is inconsistent with the visual content of the image.

In some examples, the construction site may comprise a plurality ofunits (for example, units with substantially identical floor plan), theindication of the location associated with the image obtained by Step1710 may comprise an indication that the image was captured from a firstunit of the plurality of units, and the image may depict an element.Further, in some examples, information related to variations in theplurality of units from a planned measurement of the element may beaccessed (for example, in a data structure, in a database, in a memoryunit, etc.). Step 1722A may analyze the image obtained by Step 1710 todetermine an actual measurement of the element. For example, the imageobtained by Step 1710 may be a range image and/or a depth image and/or a3D image, and the actual measurement of the element may be measureddirectly from the image. In another example, a machine learning modelmay be trained using training examples to estimate measurements ofobjects from images, and Step 1722A may use the trained machine learningmodel to analyze the image obtained by Step 1710 and determine theactual measurement of the element. One example of such training examplemay include an image of an object, together with a label indicating themeasurement of the object. Further, Step 1722A may use the determinedactual measurement of the element and the information related to thevariations in the plurality of units from the planned measurement of theelement to determine whether the image depicts at least part of thefirst unit, and may use the determination of whether the image depictsat least part of the first unit to determine whether the indicatedlocation is consistent with the visual content of the image.

In some examples, the construction site may comprise a plurality ofunits (for example, with substantially identical floor plan), and theindication of the location associated with the image obtained by Step1710 may comprise an indication that the image was captured from a firstunit of the plurality of units. Further, in some examples, informationrelated to construction defects in the plurality of units may beaccessed (for example, in a data structure, in a database, in a memoryunit, etc.). Step 1722A may analyze the image to detect a constructiondefect, for example using visual defect detection algorithms, byidentifying construction errors as described above, and so forth.Further, Step 1722A may use the detected construction defect and theinformation related to construction defects in the plurality of units todetermine whether the image depicts at least part of the first unit, andmay use the determination of whether the image depicts at least part ofthe first unit to determine whether the indicated location is consistentwith the visual content of the image.

In some examples, Step 1722A may analyze the image to determineinformation related to an actual location associated with the image, forexample using visual odometry algorithms or as described above. Further,Step 1722A may use the determined information related to the actuallocation to determine whether the actual location associated with theimage is consistent with the indicated location, and may base thedetermination of whether the indicated location is consistent with thevisual content of the image on the determination of whether the actuallocation associated with the image is consistent with the indicatedlocation. In one example, Step 1722A may analyze the image to detect anobject from outside the construction site, for example using objectdetection algorithms, and may use the detected object to determine theinformation related to the actual location associated with the image. Insome examples, the image may be an image captured from within a roombeing constructed in the construction site, Step 1722A may analyze theimage to detect an object (for example using an object detectionalgorithm), and may use the detected object to determine the informationrelated to the actual location associated with the image. For example,the object may be an object located in the room being constructed in theconstruction site. In another example, the object may be an objectvisible through a particular opening in the room being constructed, andthe determination of the information related to the actual locationassociated with the image may be based on the particular opening. In yetanother example, the object may be an object located at a different roomin the construction site. In an additional example, Step 1722A may useinformation related to the detected object from a construction planassociated with the construction site to determine the informationrelated to an actual location associated with the image. In yet anotherexample, Step 1722A may use information related to the detected objectfrom an as-built model associated with the construction site todetermine the information related to an actual location associated withthe image. In an additional example, Step 1722A may use informationrelated to the detected object from a progress record associated withthe construction site to determine the information related to an actuallocation associated with the image.

In some embodiments, the indicated at least one purported parameter ofthe capturing of the image may comprise an indication of a first pointin time associated with the image obtained by Step 1710. For example,the indicated first point in time associated with the image may be apoint in time associated with a capturing time of the image (such as thecapturing time of the image), may be a point in time associated with areceiving of the image (such as the receiving time of the image), may bea point in time associated with a processing of the image (such as theprocessing time of the image), may be a point in time subsequent to thecapturing time of the image, and so forth. In some examples, Step 1722Bmay analyze the image obtained by Step 1710 to determine whether theindicated first point in time is consistent with the visual content ofthe image. In one example, a machine learning model may be trained usingtraining examples to identify inconsistencies between indicated pointsin time and images, and Step 1722B may use the trained machine learningmodel to analyze the image obtained by Step 1710 and the indication ofthe first point in time associated with the image to determine whetherthe indicated first point in time is consistent with the visual contentof the image. An example of such training example may include aparticular image and an indication of a particular point in time,together with a label indicating whether the particular point in time isconsistent with the particular image. Further, Step 1724B may base thedetermination of whether the indicated at least one purported parameterof the capturing of the image is consistent with the visual content ofthe image on the determination of whether the indicated first point intime is consistent with the visual content of the image. For example, inresponse to a determination that the indicated first point in time isconsistent with the visual content of the image, Step 1724B maydetermine that the indicated at least one purported parameter of thecapturing of the image is consistent with the visual content of theimage, and in response to a determination that the indicated first pointin time is inconsistent with the visual content of the image, Step 1724Bmay determine that the indicated at least one purported parameter of thecapturing of the image is inconsistent with the visual content of theimage. In some examples, Step 1730 may base the first update to theelectronic record associated with the construction site on the indicatedfirst point in time. In some examples, Step 1740 may base the firstinformation provided to the user on the indicated first point in time.

In some examples, method 1700 may further comprise obtaining image dataof the construction site associated with a second point in time, thesecond point in time may differ from the first point in time, and Step1722B may compare the image data associated with the second point intime and the image obtained by Step 1710 to determine whether theindicated first point in time is consistent with the visual content ofthe image. For example, the second point in time may be subsequent tothe first point in time. In another example, the first point in time maybe subsequent to the second point in time. In one example, in responseto the construction stage at the first point in time being more advancedthan the construction stage at the second point in time and the secondpoint in time being subsequent to the first point in time, Step 1722Bmay determine that the indicated first point in time is inconsistentwith the visual content of the image. In one example, in response to theconstruction stage at the first point in time being less advanced thanthe construction stage at the second point in time and the first pointin time being subsequent to the second point in time, Step 1722B maydetermine that the indicated first point in time is inconsistent withthe visual content of the image. In one example, in response to theconstruction stage at the first point in time being more advanced thanthe construction stage at the second point in time and the first pointin time being subsequent to the second point in time, Step 1722B maydetermine that the indicated first point in time is consistent with thevisual content of the image. In one example, in response to theconstruction stage at the first point in time being less advanced thanthe construction stage at the second point in time and the second pointin time being subsequent to the first point in time, Step 1722B maydetermine that the indicated first point in time is inconsistent withthe visual content of the image.

In some examples, method 1700 may further comprise obtaining first imagedata of the construction site associated with a second point in time,the second point in time may be earlier than the first point in time,and obtaining second image data of the construction site associated witha third point in time, the third point in time may be later than thefirst point in time. Further, Step 1722B may analyze the image obtainedby Step 1710, the first image data and the second image data todetermine whether the indicated first point in time is consistent withthe visual content of the image. For example, the image obtained by Step1710 may be analyzed to determine a construction stage at the firstpoint in time, the first image data may be analyzed to determine aconstruction stage at the second point in time, and the third image datamay be analyzed to determine a construction stage at the third point intime. In one example, in response to at least one of the constructionstage at the first point in time being more advanced than theconstruction stage at the third point in time and the construction stageat the first point in time being less advanced than the constructionstage at the second point in time, Step 1722B may determine that theindicated first point in time is inconsistent with the visual content ofthe image. In one example, in response to the construction stage at thefirst point in time being less advanced than the construction stage atthe third point in time and more advanced than the construction stage atthe second point in time, Step 1722B may determine that the indicatedfirst point in time is consistent with the visual content of the image.

In some examples, Step 1722B may analyze the image obtained by Step 1710to determine information related to an actual time associated with theimage, such as a capturing time corresponding to the image. For example,a machine learning model may be trained using training examples todetermine capturing time of images, and Step 1722B may use the trainedmachine learning model to analyze the image obtained by Step 1710 anddetermine the capturing time corresponding to the image. Further, Step1722B may use the determined information related to the actual time todetermine whether the actual time associated with the image isconsistent with the indicated first point in time, for example bycomparing the actual time and the first point in time, and may base thedetermination of whether the indicated first point in time is consistentwith the visual content of the image on the determination of whether theactual time associated with the image is consistent with the indicatedfirst point in time.

In some examples, Step 1722B may comprise basing the determination ofwhether the indicated first point in time is consistent with the visualcontent of the image on a depiction of an object in the image obtainedby Step 1710. Some non-limiting examples of such object may include anobject from outside the construction site, the Sun, a star, at leastpart of a sky, an element in the construction site, and so forth. Insome examples, Step 1722B may analyze the image obtained by Step 1710 todetermine whether a particular object is depicted in the image, forexample using an object detection algorithm, in response to adetermination that the particular object is depicted in the image, Step1722B may determine that the indicated first point in time is consistentwith the visual content of the image, and in response to a determinationthat the particular object is not depicted in the image, Step 1722B maydetermine that the indicated first point in time is inconsistent withthe visual content of the image. In some examples, Step 1722B mayanalyze the image obtained by Step 1710 to determine a location of adepiction of a particular object in the image, for example using anobject detection algorithm, in response to a determination that theparticular object is depicted at a first location in the image, Step1722B may determine that the indicated first point in time is consistentwith the visual content of the image, and in response to a determinationthat the particular object is depicted at a second location in theimage, Step 1722B may determine that the indicated first point in timeis inconsistent with the visual content of the image. In some examples,Step 1722B may analyze the image obtained by Step 1710 to determine aproperty of a particular object in the image (such as a type, a size, acondition, a state, etc.), for example using an object classificationalgorithm, in response to a determined first property of the particularobject, Step 1722B may determine that the indicated first point in timeis consistent with the visual content of the image, and in response to adetermined second property of the particular object, Step 1722B maydetermine that the indicated first point in time is inconsistent withthe visual content of the image. In some examples, Step 1722B mayanalyze the image obtained by Step 1710 to determine whether aparticular object is depicted in at a particular location in the image,for example using an object detection algorithm, and may analyze theimage obtained by Step 1710 to determine whether he particular locationis occluded in the image, for example as described above. Further, inresponse to a determination that the particular object is depicted inthe image, Step 1722B may determine that the indicated first point intime is consistent with the visual content of the image, in response toa determination that the particular location is occluded in the image,Step 1722B may determine that the indicated first point in time isconsistent with the visual content of the image, and in response to adetermination that the particular object is not depicted in the imageand the particular location is not occluded in the image, Step 1722B maydetermine that the indicated first point in time is inconsistent withthe visual content of the image.

In some embodiments, the indicated at least one purported parameter ofthe capturing of the image obtained by Step 1710 may comprise anindication of a first point in time associated with the image. In someexamples, Step 1721C may comprise accessing information indicative of astate of at least part of the construction site at a second point intime, for example, in a data structure, in a database, in a memory unit,and so forth. For example, the information indicative of the state of atleast part of the construction site at the second point in time may bebased on an analysis of an image of the construction site captured atthe second point in time, may be based on information reported by ahuman user, may be based on a progress record associated with theconstruction site, may be based on a project schedule associated withthe construction site, may be based on an as-built model associated withthe construction site, and so forth. In some examples, Step 1722C maycomprise analyzing the image obtained by Step 1710 to identify aninconsistency between the indicated state of the at least part of theconstruction site at the second point in time and the visual content ofthe image based on the image being associated with the first point intime. In one example, a machine learning model may be trained usingtraining examples to identify inconsistencies between indicated statesof construction sites and images, and Step 1722C may use the trainedmachine learning model to analyze the image obtained by Step 1710 andthe information indicative of the state of at least part of theconstruction site at the second point in time accessed by Step 1721C toidentify an inconsistency between the indicated state of the at leastpart of the construction site at the second point in time and the visualcontent of the image based on the image being associated with the firstpoint in time. An example of such training example may include an imageof a construction site and an indication of a state of the constructionsite, together with a label indicating whether the image and theindicated states are consistence with each other. In another example,the image obtained by Step 1710 may be analyzed to determine a state ofthe construction site at the first point in time associated with theimage, for example as described above, and Step 1722C may compare thedetermined state of the construction site at the first point in time andthe indicated state of the at least part of the construction site at thesecond point in time to determine whether the two are consistence withthe relation between the first point in time and the second point intime. In some examples, in response to the identification by Step 1722Cof the inconsistency between the state of the construction site at thesecond point in time and the visual content of the image, Step 1724C maydetermine that the indicated at least one purported parameter of thecapturing of the image is inconsistent with the visual content of theimage. In one example, in response to a failure of Step 1722C toidentify an inconsistency between the state of the construction site atthe second point in time and the visual content of the image, Step 1724Cmay determine that the indicated at least one purported parameter of thecapturing of the image is consistent with the visual content of theimage. In another example, in response to the identification of theinconsistency between the state of the construction site at the secondpoint in time and the visual content of the image, Step 1722B maydetermine that the indicated first point in time is inconsistent withthe visual content of the image. In yet another example, in response tothe identification of the inconsistency between the state of theconstruction site at the second point in time and the visual content ofthe image, Step 1722A may determine that a location indicated by the atleast one purported parameter associated with the image is inconsistentwith the visual content of the image.

In some examples, the information indicative of the state of the atleast part of the construction site at the second point in time accessedby Step 1721C may comprise an indication of a construction stage of theat least part of the construction site at the second point in time, andStep 1722C may analyze the image obtained by Step 1710 to determine thata construction stage of the at least part of the construction siteaccording to the visual content of the image is inconsistence with theconstruction stage of the at least part of the construction site at thesecond point in time and with a relation between the first point in timeand the second point in time. For example, Step 1722C may analyze theimage obtained by Step 1710 to determine that the construction stage ofthe at least part of the construction site according to the visualcontent of the image, for example as described above, and may comparethe determined with the indicated construction stage of the at leastpart of the construction site at the second point to determine whetherthere is an inconsistency. Further, in response to the determinationthat the construction stage of the at least part of the constructionsite according to the visual content of the image is inconsistence withthe construction stage of the at least part of the construction site atthe second point in time and with the relation between the first pointin time and the second point in time, Step 1722C may determine that theindicated at least one purported parameter of the capturing of the imageis inconsistent with the visual content of the image. In one example,the relation between the first point in time and the second point intime may be based on a time difference between the first point in timeand the second point in time, may be that the first point in time islater than the second point in time, may be that the first point in timeis earlier than the second point in time, and so forth.

In some examples, the information indicative of the state of the atleast part of the construction site at the second point in time accessedby Step 1721C may comprise an indication that a construction stage ofthe at least part of the construction site at the second point in timeis a second stage, and Step 1722C may analyze the image obtained by Step1710 to determine a construction stage of the at least part of theconstruction site based on the visual content of the image, for exampleas described above. In one example, in response to the determinedconstruction stage of the at least part of the construction site basedon the visual content of the image being a first stage, the indicationthat the construction stage of the at least part of the constructionsite at the second point in time being the second stage and the firstpoint in time being earlier than the second point in time, Step 1722Cmay determine that the indicated at least one purported parameter of thecapturing of the image is consistent with the visual content of theimage, and in response to the determined construction stage of the atleast part of the construction site based on the visual content of theimage being the first stage, the indication that the construction stageof the at least part of the construction site at the second point intime being the second stage and the second point in time being earlierthan the first point in time, Step 1722C may determine that theindicated at least one purported parameter of the capturing of the imageis inconsistent with the visual content of the image. In one example, inresponse to the determined construction stage of the at least part ofthe construction site based on the visual content of the image being afirst stage, the indication that the construction stage of the at leastpart of the construction site at the second point in time being thesecond stage and the second point in time being earlier than the firstpoint in time, Step 1722C may determine that the indicated at least onepurported parameter of the capturing of the image is consistent with thevisual content of the image, and in response to the determinedconstruction stage of the at least part of the construction site basedon the visual content of the image being the first stage, the indicationthat the construction stage of the at least part of the constructionsite at the second point in time being the second stage and the firstpoint in time being earlier than the second point in time, Step 1722Cmay determine that the indicated at least one purported parameter of thecapturing of the image is inconsistent with the visual content of theimage. In one example, in response to the determined construction stageof the at least part of the construction site based on the visualcontent of the image being a first stage, the indication that theconstruction stage of the at least part of the construction site at thesecond point in time being the second stage and the time differencebetween the first point in time and the second point in time being afirst time difference, Step 1722C may determine that the indicated atleast one purported parameter of the capturing of the image isconsistent with the visual content of the image, and in response to thedetermined construction stage of the at least part of the constructionsite based on the visual content of the image being the first stage, theindication that the construction stage of the at least part of theconstruction site at the second point in time being the second stage andthe time difference between the first point in time and the second pointin time being a second time difference, Step 1722C may determine thatthe indicated at least one purported parameter of the capturing of theimage is inconsistent with the visual content of the image.

In some embodiments, the indicated at least one purported parameter ofthe capturing of the image obtained by Step 1710 may comprise anindication of a type of image capturing device associated with theimage. Some non-limiting examples of such types of image capturingdevices may include a stationary camera positioned in the constructionsite, a mobile capturing device, an image acquisition robot, an imageacquisition drone, a wearable capturing device, a color camera, agrayscale camera, a hyperspectral camera, a depth camera, a rangecamera, a stereo camera, an active stereo camera, a time-of-flightcamera, and so forth. In some examples, Step 1722D may analyze the imageto determine whether the indicated type of image capturing device isconsistent with the visual content of the image. For example, a machinelearning model may be trained using training examples to identify typesof capturing devices used to capture images, and Step 1722D may use thetrained machine learning model to analyze the image obtained by Step1710 to determine the type of capturing device used to capture theimage, and compare the determined capturing device with the indicatedtype of image capturing device to determine whether the indicated typeof image capturing device is consistent with the visual content of theimage. One example of such training example may include a particularimage, together with a label indicating the type of capturing deviceused to capture the image. In another example, the indicated type ofimage capturing device may correspond to particular imagecharacteristics (such as pixel resolution, number of color components,etc.), and Step 1722D may compare the particular image characteristicswith the image characteristics of the image obtained by Step 1710 todetermine whether the indicated type of image capturing device isconsistent with the visual content of the image. Further, Step 1724D maybase the determination of whether the indicated at least one purportedparameter of the capturing of the image is consistent with the visualcontent of the image on the determination of whether the indicated typeof image capturing device is consistent with the visual content of theimage. In one example, in response to a determination that the indicatedtype of image capturing device is consistent with the visual content ofthe image, Step 1724D may determine that the indicated at least onepurported parameter of the capturing of the image is consistent with thevisual content of the image. In one example, in response to adetermination that the indicated type of image capturing device isinconsistent with the visual content of the image, Step 1724D maydetermine that the indicated at least one purported parameter of thecapturing of the image is inconsistent with the visual content of theimage. In one example, Step 1722D may analyze the image obtained by Step1710 to determine a viewing angle associated with the image, in responseto a first determined viewing angle, for example using visual odometryalgorithms, Step 1722D may determine that the indicated type of imagecapturing device is consistent with the visual content of the image, andin response to a second determined viewing angle, Step 1722D maydetermine that the indicated type of image capturing device isinconsistent with the visual content of the image. In one example, Step1722D may analyze the image obtained by Step 1710 to attempt to detect adevice connected to the image capturing device, for example using anobject detection algorithms, and Step 1722D may base the determinationof whether the indicated type of image capturing device is consistentwith the visual content of the image on a result of the attempt todetect the device connected to the image capturing device.

The large number of construction tasks, construction workers andsubcontractors involves in the construction process, as well as thecomplex interdependencies among tasks, make the coordination in theconstruction site oppressively burdensome, which in turn may slow andcomplicate the construction process. Automating the coordination amongconstruction tasks, construction workers and/or subcontractors mayreduce this burden and improve efficiency. Specifically, automaticcreation of tasks according to the actual state of the construction sitemay reduce this burden and improve efficiency.

FIG. 18 illustrates an example of a method 1800 for generating tasksfrom images of construction sites. In this example, method 1800 maycomprise: obtaining image data captured from a construction site usingat least one image sensor (Step 1810); analyzing the image data todetermine at least one desired task related to the construction site(Step 1820); analyzing the image data to determine at least oneparameter of the at least one desired task (Step 1830); and using thedetermined at least one parameter of the at least one desired task toprovide information configured to cause the performance of the at leastone desired task (Step 1840). In some implementations, method 1800 maycomprise one or more additional steps, while some of the steps listedabove may be modified or excluded. In some implementations, one or moresteps illustrated in FIG. 18 may be executed in a different order and/orone or more groups of steps may be executed simultaneously and viceversa.

In some embodiments, Step 1810 may comprise obtaining image datacaptured from a construction site using at least one image sensor. Forexample, Step 1810 may use 710 to obtain at least part of the imagedata. In another example, Step 1810 may read at least part of the imagedata from a memory unit (such as memory units 210, shared memory modules410, memory 600, and so forth). In yet another example, Step 1810 mayreceive at least part of the image through a data communication network(such as communication network 130), for example using one or morecommunication devices (such as communication modules 230, internalcommunication modules 440, external communication modules 450, and soforth). In an additional example, Step 1810 may access at least part ofthe image and/or at least part of the indication through a database.

In some embodiments, Step 1820 may comprise analyzing the image dataobtained by Step 1810 to determine at least one desired task related tothe construction site. Some non-limiting examples of such tasks mayinclude a construction task, capturing of at least one image from theconstruction site, manual inspection of at least part of theconstruction site, a rough-in inspection, an inspection of plumbingsystems, a moisture barrier inspection, an insulation inspection, acorrection of at least one construction error in the construction site,ordering of construction supplies to the construction site, install atleast one element in the construction site (such as gas pipe, anelectrical wire, a pipe, water pipe, electrical box, fixture, one ormore tiles, an underground duct, an underground fuel pipe, a conduit, acable, etc.), constructing at least part of at least one element in theconstruction site, covering at least part of a surface (for example,with at least one of plaster, paint, wallboards and tiles), plastering,painting, finishes, building wall frames, installing plaster guides,installing top tracks, installing studs, installing insulation material,installing wallboards, placing a water pipe, installing water junction,placing the a element, placing a tunnel for electrical wires, placing anelectrical element, installing conduit, installing electric junctionbox, installing support, installing outlet, installing cover plate,installing gas pipes, installing gas junction box, installing gasoutlet, placing a sink, an application of a material (such as plaster,paint, etc.), closing of at least one of a wall and a ceiling with oneor more wallboards, an installation of an exterior finishing material,covering insulation, backfilling, placement of reinforcement steel,placing of concrete, excavation, excavating a trench, marking of utilitylines and/or pipes, and so forth. For example, a machine learning modelmay be trained using training examples to determine tasks from images,and Step 1820 may use the trained machine learning model to analyze theimage data obtained by Step 1810 and determine the at least one desiredtask related to the construction site. One example of such trainingexample may include a particular image, together with a label indicatinga desired task. In one example, Step 1820 may comprise comparing aconstruction plan associated with the construction site with the imagedata obtained by Step 1810 to determine the at least one desired taskrelated to the construction site. In one example, Step 1820 may comprisecomparing a project schedule associated with the construction site withthe image data obtained by Step 1810 to determine the at least onedesired task related to the construction site. In one example, Step 1820may comprise comparing a progress record associated with theconstruction site with the image data obtained by Step 1810 to determinethe at least one desired task related to the construction site. In oneexample, Step 1820 may comprise comparing an as-built model associatedwith the construction site with the image data obtained by Step 1810 todetermine the at least one desired task related to the constructionsite.

In some embodiments, Step 1830 may comprise analyzing the image dataobtained by Step 1810 to determine at least one parameter of the atleast one desired task determined by Step 1820. Some non-limitingexamples of such parameters may include location, timing, a selection ofa part of the construction site, capturing parameters, a type of aconstruction error, a suggested remedy for a construction error or aconstruction problem, a type of inspection, a time frame for inspection,punch list for inspection, focus issues for inspection, a type ofconstruction supplies, a quantity of construction supplies, an intendentuse of construction supplies, and so forth. In one example, a machinelearning model may be trained using training examples to determineparameters of tasks from images, and Step 1830 may use the trainedmachine learning model to analyze the image data obtained by Step 1810and determine the at least one parameter of the at least one desiredtask determined by Step 1820. One example of such training example mayinclude a particular image, together with a label indicating parametersof a particular task. Another example of such training example mayinclude a particular image and an indication of a particular task,together with a label indicating parameters of the particular task. Inone example, Step 1830 may comprise comparing a construction planassociated with the construction site with the image data obtained byStep 1810 to determine the at least one parameter of the at least onedesired task. In one example, Step 1830 may comprise comparing a projectschedule associated with the construction site with the image dataobtained by Step 1810 to determine the at least one parameter of the atleast one desired task. In one example, Step 1830 may comprise comparinga progress record associated with the construction site with the imagedata obtained by Step 1810 to determine the at least one parameter ofthe at least one desired task. In one example, Step 1830 may comprisecomparing an as-built model associated with the construction site withthe image data obtained by Step 1810 to determine the at least oneparameter of the at least one desired task.

In some embodiments, Step 1840 may comprise using the at least oneparameter of the at least one desired task determined by Step 1830 toprovide information configured to cause the performance of the at leastone desired task determined by Step 1820. For example, Step 1840 mayprovide the information configured to cause the performance of the atleast one desired task to a user (for example, visually through a userinterface, as textual information, as audible information, etc.), maytransmit the information configured to cause the performance of the atleast one desired task to an external device (for example, Step 1840 maytransmitting the information to the external system using acommunication device), may transmit the information configured to causethe performance of the at least one desired task over a datacommunication network (such as communication network 130), for exampleusing one or more communication devices (such as communication modules230, internal communication modules 440, external communication modules450, and so forth), may store the information configured to cause theperformance of the at least one desired task in a memory unit (such asmemory units 210, shared memory modules 410, memory 600, and so forth),and so forth. In one example, Step 1840 may provide the informationconfigured to cause the performance of the at least one desired task toa scheduling system. In some examples, the information configured tocause the performance of the at least one desired task may comprise anindication of an object in the construction site associated with the atleast one desired task, may comprise an indication of a unit of theconstruction site associated with the at least one desired task, maycomprise an indication of a time associated with the at least onedesired task, may comprise an indication of the at least one desiredtask determined by Step 1820, may comprise an indication of at least oneparameter of the at least one desired task determined by Step 1830, andso forth.

In some examples, Step 1840 may use the at least one parameter of the atleast one desired task determined by Step 1830 to select a human workerfor the performance of the at least one desired task (for example of aplurality of alternative human workers). For example, in response to afirst determined parameter of the at least one desired task, Step 1840may select a first human worker, and in response to a second determinedparameter of the at least one desired task, Step 1840 may select asecond human worker, the second human worker may differ from the firsthuman worker. In one example, Step 1840 may provide the informationconfigured to cause the performance of the at least one desired task tothe selected human worker, for example as described above. In anotherexample, the information configured to cause the performance of the atleast one desired task may comprise an indication of the selected humanworker.

In some examples, Step 1840 may use the at least one parameter of the atleast one desired task determined by Step 1830 to select whether toallocate the at least one desired task to a robot or to a human worker.For example, in response to a first determined parameter of the at leastone desired task, Step 1840 may select to allocate the at least onedesired task to a robot, and in response to a second determinedparameter of the at least one desired task, Step 1840 may select toallocate the at least one desired task to a human. In one example, inresponse to a selection to allocate the at least one desired task to therobot, Step 1840 may provide first information configured to cause theperformance of the at least one desired task to the robot, for exampleas described above in relation to an external system. In one example, inresponse to a selection to allocate the at least one desired task to thehuman worker, Step 1840 may provide second information configured tocause the performance of the at least one desired task to the humanworker, for example as described above. For example, the secondinformation may differ from the first information. In another example,the second information may be identical to the first information. In oneexample, the information configured to cause the performance of the atleast one desired task may comprise an indication of the selection ofwhether to allocate the at least one desired task to a robot or to ahuman worker. In one example, in response to a selection to allocate theat least one desired task to the robot, the information configured tocause the performance of the at least one desired task may comprise anindication of a type of robot required to perform the at least onedesired task. In one example, in response to a selection to allocate theat least one desired task to the robot, the information configured tocause the performance of the at least one desired task may comprise anindication of a particular robot selected to perform the task.

In some embodiments, method 1800 may further comprise obtaining (forexample, from a memory unit, from an external device, etc.) second imagedata captured from the construction site after Step 1840 provided theinformation configured to cause the performance of the at least onedesired task, and analyzing the second image data to determine whetherthe at least one desired task related to the construction site wasperformed, for example using Step 1520. In one example, in response to adetermination that the at least one desired task related to theconstruction site was not performed, a notification may be provided, andin response to a determination that the at least one desired taskrelated to the construction site was performed, providing thenotification may be withheld and/or forgone. In one example, in responseto a determination that the at least one desired task related to theconstruction site was not performed and the second image data beingcaptured at least a selected time duration after Step 1840 provided theinformation, the notification may be provided, and in response to adetermination that the at least one desired task related to theconstruction site was not performed and the second image data beingcaptured within the selected time duration after Step 1840 provided theinformation, providing the notification may be withheld and/or forgone.For example, the notification may be provided to a user (for example,visually through a user interface, as textual information, as audibleinformation, etc.), may transmit to an external device, may transmitover a data communication network, and so forth. For example, thenotification may include an indication of the at least one desired task,may include at least part of the image data, may include a reminder, andso forth. In some examples, the second image data may be analyzed todetermine a parameter of the performance of the at least one desiredtask related to the construction site. Some non-limiting examples ofsuch parameters may include an indication of success, an indication offailure, position corresponding to the performance of the task,properties of an object installed or constructed in the task, materialsused, amount of materials used, and so forth. For example, a machinelearning model may be trained using training examples to determineparameters of performance of tasks from images, and the trained machinelearning model may be used to analyze the second image data anddetermine the parameter of the performance of the at least one desiredtask. One example of such training example may include an image showingresult of a completed task together with a label indicating a parameterof the performance of the completed task. Further, in response to afirst determined parameter of the performance of the at least onedesired task, Step 1840 may provide first information, and in responseto a second determined parameter of the performance of the at least onedesired task, Step 1840 may withhold and/or forgo providing the firstinformation. In one example, the first information may be based on thedetermined parameter of the performance of the at least one desiredtask.

In some embodiments, method 1800 may further comprise obtaining (forexample, from a memory unit, from an external device, etc.) second imagedata captured from the construction site after Step 1840 provided theinformation configured to cause the performance of the at least onedesired task; analyzing the second image data to determine a second atleast one desired task related to the construction site (for exampleusing Step 1820 to analyze the second image data); and comparing the atleast one desired task related to the construction site and the secondat least one desired task related to the construction site. In oneexample, the comparison of the at least one desired task related to theconstruction site and the second at least one desired task related tothe construction site may be based on at least one parameter of thesecond at least one desired task, the at least one parameter of thesecond at least one desired task may be determined by analyzing thesecond image data. Further, in one example, in response to a firstresult of the comparison of the at least one desired task and the secondat least one desired task, and the second image data being captured atleast a selected time duration after providing the informationconfigured to cause the performance of the at least one desired task, anotification may be provided (for example as described above); inresponse to the first result of the comparison of the at least onedesired task and the second at least one desired task, and the secondimage data being captured within the selected time duration afterproviding the information configured to cause the performance of the atleast one desired task, providing the notification may be withheldand/or forgone; and in response to a second result of the comparison ofthe at least one desired task and the second at least one desired task,providing the notification may be withheld and/or forgone. In anotherexample, in response to a first result of the comparison of the at leastone desired task and the second at least one desired task, anotification may be provided (for example as described above), and inresponse to a second result of the comparison of the at least onedesired task and the second at least one desired task, providing thenotification may be withheld and/or forgone.

In some embodiments, method 1800 may further comprise analyzing theimage data obtained by Step 1810 to detect at least one object in theconstruction site (for example using Step 1120, using object detectionalgorithms, and so forth), and analyzing the image data to determine aproperty of the detected at least one object (for example using Step1120). Further, in response to a first determined property of thedetected at least one object, Step 1840 may provide the informationconfigured to cause the performance of the at least one desired task,and in response to a second determined property of the detected at leastone object, providing the information configured to cause theperformance of the at least one desired task may be withheld and/orforgone.

In some embodiments, Step 1820 may analyze the image data obtained byStep 1810 to determine that frames for a concrete wall of a bathroomwere built, and in response to the determination that the frames for theconcrete wall of the bathroom were built, Step 1820 may determine thatat least one desired task related to the construction site comprisesinstallation of sewage pipes in the concrete wall of the bathroom. Forexample, a machine learning model may be trained using training exampleto determine whether frames for concrete walls of bathrooms were builtfrom images of construction sites, and Step 1820 may use the trainedmachine learning model to analyze the image data obtained by Step 1810and determine whether frames for a concrete wall of a bathroom werebuilt. One example of such training example may include an image of aconstruction site, together with a label indicating whether frames forconcrete walls of bathrooms were built in the construction site.

In some embodiments, Step 1820 may analyze the image data obtained byStep 1810 to determine that metal partitions for an internal drywallwere installed, and may analyze the image data obtained by Step 1810 todetermine whether the internal drywall was plastered. Further, inresponse to the determination that the metal partitions for the internaldrywall were installed and that the internal drywall was not plastered,Step 1820 may determine that at least one desired task related to theconstruction site comprises installation of at least one electricaljunction box, and in response to the determination that the metalpartitions for the internal drywall were installed and that the internaldrywall was plastered, Step 1820 may determine that at least one desiredtask related to the construction site comprises installing electricalswitch. For example, a machine learning model may be trained usingtraining examples to determine whether metal partitions for internaldrywalls were installed and/or whether internal drywalls were plasteredfrom images of construction sites, and Step 1820 may use the trainedmachine learning model to analyze the image data obtained by Step 1810and determine whether metal partitions for the internal drywall wereinstalled and/or whether the internal drywall was plastered. One exampleof such training example may include an image of a particular internaldrywall, together with a label indicating whether metal partitions forthe particular internal drywall were installed in the construction siteand/or a label indicating whether the particular internal drywall wasplastered.

In some examples, the at least one desired task determined by Step 1820may comprise capturing of at least one image from the construction site,and the at least one parameter of the at least one desired taskdetermined by Step 1830 may comprise at least one capturing parameterfor the capturing of the at least one image, (such capturing position,capturing time, camera configuration, etc.). In one example, Step 1820may determine the need for the capturing of at least one image from theconstruction site as described above in relation to method 1300. In oneexample, Step 1830 may use Step 1320 determine to the at least oneparameter of the at least one desired task. In one example, theinformation provided by Step 1840 may comprise an indication of thedetermined at least one capturing parameter for the capturing of the atleast one image.

In some examples, the at least one desired task determined by Step 1820may comprise a correction of at least one construction error in theconstruction site, and the at least one parameter of the at least onedesired task determined by Step 1830 may comprise at least one of alocation corresponding to the at least one construction error, a type ofthe at least one construction error, a suggested remedy for the at leastone construction error, and so forth. In one example, Step 1820 mayanalyze the image data to detect the construction error, for example asdescribed above in relation to Step 930. In one example, Step 1830 mayanalyze the image data to determine one or more of these parameters ofthe construction error, for example as described above in relation toStep 930. In one example, the information provided by Step 1840 maycomprise an indication of at least one of these determined parameters.

In some examples, the at least one desired task determined by Step 1820may comprise manual inspection of at least part of the constructionsite, and the at least one parameter of the at least one desired taskdetermined by Step 1830 may comprise a selection of the at least part ofthe construction site, a type of inspection, a time frame for theinspection, punch list for the inspection, focus issues for theinspection, and so forth. In one example, Step 1820 may analyze theimage data to determine that the construction site is prepared formanual inspection, for example as described above in relation to method1600, and in response to the determination that the construction site isprepared for manual inspection, determining that the at least onedesired task comprises the manual inspection. In one example, theinformation provided by Step 1840 may comprise an indication of at leastone of these determined parameters.

In some examples, the at least one desired task determined by Step 1820may comprise ordering of construction supplies to the construction site,and the at least one parameter of the at least one desired taskdetermined by Step 1830 may comprise a type of the constructionsupplies, a quantity of the construction supplies, an indication of anintendent use of the construction supplies, and so forth. In oneexample, the information provided by Step 1840 may comprise anindication of at least one of these determined parameters. For example,future tasks need to be performed in the construction site may bedetermined, for example using method 1600, Step 1820 may determine aneed for ordering of construction supplies based on the determinedfuture tasks, and Step 1830 may determine parameters of the ordering ofconstruction supplies based on the determined future tasks. In anotherexample, a machine learning model may be trained using training examplesto determine a need for ordering of construction supplies and/orparameters for the ordering of construction supplies from images ofconstruction sites, Step 1820 may use the trained machine learning modelto analyze the image data obtained by Step 1810 and determine whetherthe at least one desired task have to comprise an ordering ofconstruction supplies, and Step 1830 may use the trained machinelearning model to analyze the image data obtained by Step 1810 anddetermine parameters for the ordering of construction supplies. Anexample of such training example may include an image of a constructionsite, together with a label indicating whether there is a need to orderconstruction supplies and/or a label indicating desired parameters ofthe ordering of construction supplies. In one example, Step 1820 mayfurther base the determination of a need for ordering of constructionsupplies on information related to current inventory, on informationrelated to recent supply orders, and so forth. In one example, Step 1820may further base the determination of the parameters for the ordering ofconstruction supplies on information related to current inventory, oninformation related to recent supply orders, and so forth.

In some examples, the image data obtained by Step 1810 may be analyzedto determine a construction stage associated with at least part of theconstruction site, for example as describe above in relation to method1200. In one example, Step 1820 may use the determined constructionstage associated with the at least part of the construction site todetermine the at least one desired task related to the constructionsite. For example, in response to a first determined construction stage,Step 1820 may determine a first at least one desired task related to theconstruction site, and in response to a second determined constructionstage, Step 1820 may determine a second at least one desired taskrelated to the construction site, the second at least one desired taskmay differ from the first at least one desired task. In one example,Step 1830 may use the determined construction stage associated with theat least part of the construction site to determine the at least oneparameter of the at least one desired task. For example, in response toa first determined construction stage, Step 1830 may determine a firstat least one parameter, and in response to a second determinedconstruction stage, Step 1830 may determine a second at least oneparameter, the second at least one parameter may differ from the firstat least one parameter.

In some examples, the image data obtained by Step 1810 may be analyzedto determine a state of a particular task initiated in the constructionsite prior to the capturing of the image data. For example, theperformance of the task may comprise a plurality of events, and visualevent detection algorithms may be used to identify which of theplurality of events occurred. In another example, the image data may beanalyzed to determine a state of an object in the construction site, forexample as described above, and the state of the task may be determinedbased on the state of the object. In one example, Step 1820 may use thedetermined state of the particular task associated with the at leastpart of the construction site to determine the at least one desired taskrelated to the construction site. For example, in response to a firstdetermined state of the particular task, Step 1820 may determine a firstat least one desired task related to the construction site, and inresponse to a second determined state of the particular task, Step 1820may determine a second at least one desired task related to theconstruction site, the second at least one desired task may differ fromthe first at least one desired task. In one example, Step 1830 may usethe determined state of the particular task associated with the at leastpart of the construction site to determine the at least one parameter ofthe at least one desired task. For example, in response to a firstdetermined state of the particular task, Step 1830 may determine a firstat least one parameter, and in response to a second determined state ofthe particular task, Step 1830 may determine a second at least oneparameter, the second at least one parameter may differ from the firstat least one parameter.

Visual documentation and analysis of construction sites may include anumerous amount of visual content items (such as images, videos, depthscans, 3D images, 3D videos, and so forth). It is common to sort thevisual content items according to capturing position and/or time.However, such browsing the visual content items by capturing locationand capturing time may make browsing the visual documentationburdensome. For example, construction at different portions and units ofthe construction site may advance at different pace, and browsing thevisual documentation by capturing date may make it difficult to finddocumentation related to a particular item or to a particular action.

FIGS. 19A and 19B illustrate an example of a method 1900 for exploringimages of construction sites by construction stages. In this example,method 1900 may comprise: accessing a plurality of images of aconstruction site, each image of the plurality of images may correspondto a location in the construction site and a construction stage (Step1902); optionally, presenting a user interface (Step 1904); receiving anindication of a first location in the construction site (Step 1906);receiving an indication of a first construction stage (Step 1908); inresponse to the received indication of the first location and thereceived indication of the first construction stage, selecting a firstimage of the plurality of images, the first image may correspond to thefirst location and the first construction stage (Step 1910); presentingthe selected first image (Step 1912); receiving an indication of asecond location in the construction site (Step 1914); in response to thereceived indication of the second location, selecting a second image ofthe plurality of images, the second image may correspond to the secondlocation and the first construction stage (Step 1916); presenting theselected second image (Step 1918); receiving an indication of a firstcapturing time (Step 1920); in response to the received indication ofthe first capturing time, selecting a third image of the plurality ofimages, the third image may correspond to the second location and thefirst capturing time (Step 1922); presenting the selected third image(Step 1924); receiving an indication of a third location in theconstruction site (Step 1926); in response to the received indication ofthe third location, selecting a fourth image of the plurality of images,the fourth image may correspond to the third location and the firstcapturing time, the fourth image does not correspond to the firstconstruction stage (Step 1928); and presenting the selected fourth image(Step 1930). In some implementations, method 1900 may comprise one ormore additional steps, while some of the steps listed above may bemodified or excluded. In some implementations, one or more stepsillustrated in FIG. 19 may be executed in a different order and/or oneor more groups of steps may be executed simultaneously and vice versa.

In some embodiments, Step 1902 may comprise accessing a plurality ofimages of a construction site, each image of the plurality of images maycorrespond to a location in the construction site and/or a capturingtime and/or a construction stage. In one example, one or more images ofthe plurality of images may be analyzed to determine correspondences ofthe one or more images to locations in the construction site, forexample as described above in relation to 1722A. In one example, one ormore images of the plurality of images may be analyzed to determinecorrespondences of the one or more images to capturing times, forexample as described above in relation to Step 1722B. In one example,one or more images of the plurality of images may be analyzed todetermine correspondences of the one or more images to constructionstages, for example as described above. In one example, correspondencesof images and locations in the construction site may be determined basedon capturing location recorded by the capturing device (for example,based on inputs from an indoor localization system), based on locationrecorded by a device tethered to the capturing device, by analyzing theimages as described above, and so forth.

In some embodiments, method 1900 may comprise Step 1904, while in otherimplementations method 1900 may not include Step 1904. In some examples,Step 1904 may comprise presenting a user interface to a user. Forexample, the user interface may be visually displayed on a screen, in avirtual reality system, in an augmented reality system, using aprojection, and so forth. In some examples, the user interface may beconfigured to present to the user one or more selected images. In someexamples, the user interface may be configured to receive from the useran indication of a capturing time and/or an indication of a constructionstage and/or an indication of a location in the construction site. Forexample, the user interface may be configured to enable the user toprovide an indication of a location in the construction site, forexample by selecting a location of a plurality of alternative locations(for example, from a list of the alternative locations, from a 2Drepresentation of the alternative locations, from a 3D representation ofthe alternative locations, etc.), by pointing on a location on a map, bypointing on a location in an as-built model, by pointing on a locationat an image of the construction site, and so forth. For example, theuser interface may be configured to enable the user to provide anindication of a capturing time, for example by selecting a capturingtime of a plurality of alternative capturing times (for example, from alist of the alternative capturing times, from a calendar presenting thealternative capturing times, from a timeline representation includingmarkings corresponding to the alternative capturing times, etc.), byselecting a date of a calendar, by selecting a point on a timeline, andso forth. For example, the user interface may be configured to enablethe user to provide an indication of a construction stage, for exampleby selecting a construction stage of a plurality of alternativeconstruction stages (for example, from a list of the alternativeconstruction stages), by selecting a location and a capturing time toindicate a construction stage corresponding to the selected location andcapturing time, and so forth. In some examples, the user interface maybe configured to enable the user to select between different browsingmodes, such as browsing by construction stage, browsing by capturingtime, and so forth. For example, the user may indicate the selection ofa browsing mode directly, for example by selecting the browsing modefrom a list of alternative browsing modes. In another example, the usermay indicate a selection of a browsing by construction stage browsingmode by selecting a particular construction stage as described above. Inyet another example, the user may indicate a selection of a browsing bycapturing time browsing mode by selecting a particular capturing time asdescribed above.

In some embodiments, Step 1906 may comprise receiving an indication of afirst location in the construction site, for example from the user, fromthe user using the user interface of Step 1904, from a differentprocess, from an external device, from a memory unit, through acommunication network, and so forth.

In some embodiments, Step 1908 may comprise receiving an indication of afirst construction stage. Some non-limiting examples of such indicationof a construction stage may include an indication of a construction tasksubsequent to the construction stage, an indication of a constructiontask preceding to the construction stage, an indication of aconstruction task included in the construction stage, an indication of atype of object visible at the construction stage, an indication of atype of object installed at the construction stage, an indication of aproperty of the construction site indicative of the construction stage,and so forth. For example, at least part of the indication of the firstconstruction stage may be received from the user, from the user usingthe user interface of Step 1904, from a different process, from anexternal device, from a memory unit, through a communication network,and so forth. For example, at least part of the indication of the firstconstruction stage may be read from a memory unit (such as memory units210, shared memory modules 410, memory 600, and so forth), may bereceived through a data communication network (such as communicationnetwork 130), for example using one or more communication devices (suchas communication modules 230, internal communication modules 440,external communication modules 450, and so forth), may be accessedthrough a database, may be determined, and so forth.

In some embodiments, Step 1910 may comprise, for example in response tothe indication of the first location in the construction site receivedby Step 1906 and the indication of the first construction stage receivedby Step 1908, selecting a first image of the plurality of imagesaccessed by Step 1902, the first image may correspond to the firstlocation and the first construction stage. In some examples, theplurality of images of the construction site accessed by Step 1902 maycomprise two or more images corresponding to the first location and thefirst construction stage, and the Step 1910 may comprise selecting oneof the two or more images as the first image. For example, Step 1910 maybase the selection of the one of the two or more images on the capturingtime of the two or more images. In another example, Step 1910 mayanalyze the two or more images to select the one of the two or moreimages.

In some embodiments, Step 1912 may comprise presenting the first imageselected by Step 1910, for example to the user, to the user using theuser interface of Step 1904, using a different process, using anexternal device, and so forth. In some examples, Step 1912 may present,for example in conjunction with the presentation of the selected firstimage, a plurality of construction stages corresponding to the firstlocation in the construction site. In one example, Step 1912 mayvisually mark the first construction stage in the presentation of theplurality of construction stages corresponding to the first location inthe construction site. In one example, Step 1918 may present, inconjunction with the presentation of the selected second image, aplurality of construction stages corresponding to the second location inthe construction site, the plurality of construction stagescorresponding to the second location in the construction site may differfrom the plurality of construction stages corresponding to the firstlocation in the construction site.

In some examples, Step 1912 may present, for example in conjunction withthe presentation of the selected first image, a plurality ofconstruction stages corresponding to the first location in theconstruction site, for example as described above, and the presentationby Step 1912 of the plurality of construction stages corresponding tothe first location in the construction site may be configured to enablea user to select a second construction stage of the plurality ofconstruction stages corresponding to the first location in theconstruction site (for example, the selected second construction stagemay differ from the first construction stage). In one example, forexample in response to the selection of the second construction stage ofthe plurality of construction stages corresponding to the first locationin the construction site, an additional image of the plurality of imagesaccessed by Step 1902 may be selected, the additional image maycorrespond to the first location and the second construction stage (andin some examples, the additional image may differ from the first image),and the selected additional image may be presented, for example asdescribed in relation to Step 1912, Step 1918, Step 1924 and Step 1930.

In some examples, Step 1912 may present, for example in conjunction withthe presentation of the selected first image, a plurality ofconstruction stages corresponding to the first location in theconstruction site, for example as described above, the plurality ofimages of the construction site accessed by Step 1902 may comprise noimage corresponding to the first location and a second constructionstage, and the presented plurality of construction stages correspondingto the first location in the construction site may include the secondconstruction stage. In one example, a visual indication that theplurality of images of the construction site comprises no imagecorresponding to the first location and the second construction stagemay be presented, for example in the presentation of the plurality ofconstruction stages corresponding to the first location in theconstruction site, in conjunction with the presentation of the pluralityof construction stages corresponding to the first location in theconstruction site, and so forth. In another example, the plurality ofimages of the construction site accessed by Step 1902 may comprise atleast one image corresponding to the first location and a thirdconstruction stage, and a visual indication that the plurality of imagesof the construction site comprises at least one image corresponding tothe first location and the third construction stage may be presented,for example in the presentation of the plurality of construction stagescorresponding to the first location in the construction site, inconjunction with the presentation of the plurality of constructionstages corresponding to the first location in the construction site, andso forth. In yet another example, the plurality of images of theconstruction site accessed by Step 1902 may comprise two of more imagescorresponding to the first location and a third construction stage, anda visual indication that the plurality of images of the constructionsite comprises two of more images corresponding to the first locationand the third construction stage may be presented, for example in thepresentation of the plurality of construction stages corresponding tothe first location in the construction site, in conjunction with thepresentation of the plurality of construction stages corresponding tothe first location in the construction site, and so forth.

In some embodiments, Step 1914 may comprise, for example after Step 1912presented the first image selected by Step 1910, receiving an indicationof a second location in the construction site (the second location maydiffer from the first location indicated by the indication received byStep 1906), for example from the user, from the user using the userinterface of Step 1904, from a different process, from an externaldevice, from a memory unit, through a communication network, and soforth.

In some embodiments, Step 1916 may comprise, for example in response tothe indication of the second location in the construction site receivedby Step 1914, selecting a second image of the plurality of imagesaccessed by Step 1902, the second image may correspond to the secondlocation and the first construction stage. In some examples, for examplein response to the plurality of images of the construction site accessedby Step 1902 comprising no image corresponding to the second locationand the first construction stage, Step 1916 may select an imagecorresponding to the second location and a second construction stage asthe second image, the second construction stage may differ from thefirst construction stage. For example, the second construction stage maybe a construction stage preceding the first construction stage. Inanother example, the second construction stage may be a constructionstage succeeding the first construction stage. In some examples, forexample in response to the plurality of images of the construction siteaccessed by Step 1902 comprising no image corresponding to the secondlocation and the first construction stage, a notification to a user maybe provided.

In some embodiments, Step 1918 may comprise presenting the second imageselected by Step 1916, for example to the user, to the user using theuser interface of Step 1904, using a different process, using anexternal device, and so forth. In one example, Step 1918 may furthercomprise halting the presentation by Step 1912 of the first imageselected by Step 1910, for example before presenting the second imageselected by Step 1916, after presenting the second image selected byStep 1916, together with the presentation of the second image selectedby Step 1916, within less than a selected time length (such as half asecond, one second, ten seconds, one minute, etc.) of the presentationof the second image selected by Step 1916, and so forth.

In some embodiments, Step 1920 may comprise, for example after Step 1918presented the second image selected by Step 1916, receiving anindication of a first capturing time. Some non-limiting examples of suchindication of a capturing time may include an indication of a time, anindication of a time in day, an indication of a date, an indication of aday in week, an indication of an offset with respect to a different time(such as the current time, a different capturing time, etc.), anindication of a capturing cycle, and so forth. For example, at leastpart of the indication of the capturing time may be received from theuser, from the user using the user interface of Step 1904, from adifferent process, from an external device, from a memory unit, througha communication network, and so forth. For example, at least part of theindication of the capturing time may be read from a memory unit (such asmemory units 210, shared memory modules 410, memory 600, and so forth),may be received through a data communication network (such ascommunication network 130), for example using one or more communicationdevices (such as communication modules 230, internal communicationmodules 440, external communication modules 450, and so forth), may beaccessed through a database, may be determined (for example, asdescribed above, by analyzing images captured from the construction siteas described above, by reading time from a clock, etc.), and so forth.

In some embodiments, Step 1922 may comprise, for example in response tothe received indication of the first capturing time, selecting a thirdimage of the plurality of images accessed by Step 1902, the third imagemay correspond to the second location and the first capturing time (thethird image may or may not correspond to the first construction stage).In some examples, for example in response to the plurality of images ofthe construction site accessed by Step 1902 comprising no imagecorresponding to the second location and the first capturing time, Step1922 may select an image corresponding to the second location and asecond capturing time as the third image (the second capturing time maydiffer from the first capturing time). For example, the second capturingtime may be earlier than the first capturing time. In another example,the second capturing time may be later than the first capturing time.

In some embodiments, Step 1924 may comprise presenting the third imageselected by Step 1922, for example to the user, to the user using theuser interface of Step 1904, using a different process, using anexternal device, and so forth. In one example, Step 1924 may furthercomprise halting the presentation by Step 1918 of the second imageselected by Step 1916, for example before presenting the third imageselected by Step 1922, after presenting the third image selected by Step1922, together with the presentation of the third image selected by Step1922, within less than a selected time length (such as half a second,one second, ten seconds, one minute, etc.) of the presentation of thethird image selected by Step 1922, and so forth.

In some embodiments, Step 1926 may comprise, for example after Step 1924presented the third image selected by Step 1922, receiving an indicationof a third location in the construction site, for example from the user,from the user using the user interface of Step 1904, from a differentprocess, from an external device, from a memory unit, through acommunication network, and so forth. For example, the third location inthe construction site may differ from the first location in theconstruction site indicated by the indication received by Step 1906, maydiffer from the second location in the construction site indicated bythe indication received by Step 1914, may differ from the first locationin the construction site indicated by the indication received by Step1906 and from the second location in the construction site indicated bythe indication received by Step 1914, may be identical to the firstlocation in the construction site indicated by the indication receivedby Step 1906, may be substantially identical to the first location inthe construction site indicated by the indication received by Step 1906,may be identical to the second location in the construction siteindicated by the indication received by Step 1914, may be substantiallyidentical to the second location in the construction site indicated bythe indication received by Step 1914, and so forth.

In some embodiments, Step 1928 may comprise, for example in response tothe received indication of the third location in the construction site,selecting a fourth image of the plurality of images accessed by Step1902, the fourth image may correspond to the third location and thefirst capturing time (the fourth image may or may not correspond to thefirst construction stage).

In some embodiments, Step 1930 may comprise presenting the fourth imageselected by Step 1928, for example to the user, to the user using theuser interface of Step 1904, using a different process, using anexternal device, and so forth. In one example, Step 1930 may furthercomprise halting the presentation by Step 1924 of the third imageselected by Step 1922, for example before presenting the fourth imageselected by Step 1928, after presenting the fourth image selected byStep 1928, together with the presentation of the fourth image selectedby Step 1928, within less than a selected time length (such as half asecond, one second, ten seconds, one minute, etc.) of the presentationof the fourth image selected by Step 1928, and so forth.

In some examples, such as Step 1906, Step 1914, Step 1926, etc., anindication of a location in the construction site may be received. Somenon-limiting examples of such indication of a location in theconstruction site may include an indication of a location on a map, anindication of a location on an image, in indication of a location on aconstruction plan, an indication of a location on an as-built model, aset of coordinates indicating a position within the construction site,an indication of a particular unit (such as a particular room, aparticular apartment, a particular floor, etc.) in the constructionsite, and so forth. For example, at least part of the indication of thelocation in the construction site may be received from the user, fromthe user using the user interface of Step 1904, from a differentprocess, from an external device, from a memory unit, through acommunication network, and so forth. For example, at least part of theindication of the location in the construction site may be read from amemory unit (such as memory units 210, shared memory modules 410, memory600, and so forth), may be received through a data communication network(such as communication network 130), for example using one or morecommunication devices (such as communication modules 230, internalcommunication modules 440, external communication modules 450, and soforth), may be accessed through a database, may be determined (forexample, as described above, by analyzing images captured from theconstruction site as described above, by analyzing construction plans asdescribed above, etc.), and so forth.

In some examples, such as Step 1910, Step 1916, etc., an imagecorresponding to a particular location and a particular constructionstage may be selected of the plurality of images accessed by Step 1902.For example, a data structure and/or a database indexing the pluralityof images by locations and/or construction stages may be accessed usingthe particular location and/or the particular construction stage toselect the image. In another example, each image of the plurality ofimages may be coupled with a location and/or a construction stage, andthe plurality of images may be searched to find (and select) an imagecorresponding to the particular location and/or the particularconstruction stage. In yet another example, images of the plurality ofimages may be analyzed to determine corresponding locations and/orconstruction stages (for example, as described above), and the imagesmay be analyzed to find (and select) an image an image corresponding tothe particular location and/or the particular construction stage.

In some examples, such as Step 1922, Step 1928, etc., an imagecorresponding to a particular location and a particular capturing timemay be selected of the plurality of images accessed by Step 1902. Forexample, a data structure and/or a database indexing the plurality ofimages by locations and/or capturing times may be accessed using theparticular location and/or the particular capturing time to select theimage. In another example, each image of the plurality of images may becoupled with a location and/or a capturing time, and the plurality ofimages may be searched to find (and select) an image corresponding tothe particular location and/or the particular capturing time. In yetanother example, images of the plurality of images may be analyzed todetermine corresponding locations and/or capturing time (for example, asdescribed above), and the images may be analyzed to find (and select) animage an image corresponding to the particular location and/or theparticular capturing time.

In some examples, such as Step 1912, Step 1918, Step 1924, Step 1930,etc., a selected image may be presented. For example, the selected imagemay be presented to the user, to the user using the user interface ofStep 1904, using a different process, using an external device, and soforth. In one example, presenting the selected image may comprisehalting the presentation of one or more previously presented images, forexample before presenting the selected image, after presenting theselected image, together with the presentation of the selected image,within less than a selected time length (such as half a second, onesecond, ten seconds, one minute, etc.) of the presentation of theselected image, and so forth. In another example, the selected image maybe presented together with one or more previously presented images. Insome examples, the selected image may comprise a 360 image, and thepresentation of the selected image may include a presentation of theoriginal image, a presentation of a projection of the selected image, apresentation of an equirectangular projection of the selected image, apresentation of a cube mapping of the selected image, a presentation ofa Equi-Angular Cubemap projection of the selected image, a presentationof a pyramid projection of the selected image, and so forth. In someexamples, a plurality of construction stages may be presented, forexample in conjunction with the presentation of the selected image, theplurality of construction stages may corresponds to a location in theconstruction site corresponding to the selected image being presented.

In some examples, an indication of a location in the construction site(such as the indication of the first location in the construction sitereceived by Step 1906, the indication of the second location in theconstruction site received by Step 1914, the indication of the thirdlocation in the construction site received by Step 1926, etc.) maycomprise an indication of a unit of the construction site, and imagescorresponding to the indicated location may be images captured from oneor more positions in the indicated unit. For example, the indication ofthe first location in the construction site received by Step 1906 maycomprise an indication of a unit of the construction site, and imagescorresponding to the first location may be images captured from one ormore positions in the indicated unit. In some examples, an indication ofa location in the construction site (such as the indication of the firstlocation in the construction site received by Step 1906, the indicationof the second location in the construction site received by Step 1914,the indication of the third location in the construction site receivedby Step 1926, etc.) may comprise an indication of an object in theconstruction site, and images corresponding to the indicated locationmay be images depicting the indicated object. For example, theindication of the first location in the construction site received byStep 1906 may comprise an indication of an object in the constructionsite, and images corresponding to the first location may be imagesdepicting the indicated object. In some examples, an indication of acapturing time in the construction site (such as the indication of thefirst capturing time received by Step 1920, etc.) may comprise anindication of an image capturing cycle, and images corresponding to theindicated capturing time may be images captured at the indicated imagecapturing cycle. In some examples, an indication of a capturing time inthe construction site (such as the indication of the first capturingtime received by Step 1920, etc.) may comprise an indication of a timespan, and images corresponding to the indicated capturing time may beimages captured at the indicated time span.

In some embodiments, for example after Step 1930 presented the selectedfourth image, an additional indication of the first construction stagemay be received (for example as described above in relation to Step1908). Further, for example in response to the received additionalindication, a fifth image of the plurality of images may be selected(for example as described above in relation to Step 1910 and Step 1916,the fifth image may correspond to the third location and the firstconstruction stage (the fifth image may or may not correspond to thefirst capturing time). Further, the fifth image may be presented, forexample as described above in relation to Step 1912, Step 1918, Step1924 and Step 1930.

In some embodiments, a plurality of images of a construction site may beaccessed (for example using Step 1902 as described above), each image ofthe plurality of images may correspond to a location in the constructionsite and/or a construction stage and/or a capturing time. Further, afirst image of the plurality of images may be presented (for example asdescribed above in relation to Step 1912, Step 1918, Step 1924 and Step1930), for example to a user, the first image may correspond to a firstlocation in the construction site, a first construction stage and afirst capturing time. Further, an indication of a second location in theconstruction site may be received (for example as described above inrelation to Step 1906, Step 1914 and Step 1926), for example from auser. Further, a browsing mode may be determined, for example asdescribed below. In one example, in response to a determination of afirst browsing mode, a second image of the plurality of images may bepresented, the second image may correspond to the second location andthe first construction stage. Further, in response to a determination ofa second browsing mode, a third image of the plurality of images may bepresented, the third image may correspond to the second location and thefirst capturing time.

In some examples, a browsing mode may be determined. For example, thebrowsing mode may be determined based on user input. In one example, thebrowsing mode may be selected by the user, for example using the userinterface, using a different process, using an external device, and soforth. In another example, in response to a received an indication of aconstruction stage (for example using Step 1908), a first browsing modemay be determined, and in response to an indication of a capturing time(for example using Step 1920), a second browsing mode may be determined,the second browsing mode may differ from the first browsing mode. Inanother example, the browsing mode may be determined, for example basedon a currently presented image. In yet another example, the browsingmode may be read from a memory unit (such as memory units 210, sharedmemory modules 410, memory 600, and so forth), may be received through adata communication network (such as communication network 130), forexample using one or more communication devices (such as communicationmodules 230, internal communication modules 440, external communicationmodules 450, and so forth), may be accessed through a database, and soforth.

What is claimed is:
 1. A non-transitory computer readable medium storingdata and computer implementable instructions for carrying out a methodfor determining schedule constraints from construction plans, the methodcomprising: obtaining at least part of a construction plan for aconstruction site; analyzing the at least part of the construction planto identify a first object of a first object type planned to beconstructed in the construction site, a first element of a first elementtype planned to be connected to the first object, and a second elementof a second element type planned to be connected to the first object;based on the first object type, determining a first plurality ofconstruction tasks for the construction of the first object, the firstplurality of construction tasks comprises at least a first constructiontask and a second construction task; based on the first element type,determining a second plurality of construction tasks for theconstruction of the first object and related to the first element, thesecond plurality of construction tasks comprises at least a thirdconstruction task and a fourth construction task; based on the secondelement type, determining a third plurality of construction tasks forthe construction of the first object and related to the second element,the third plurality of construction tasks comprises at least a fifthconstruction task and a sixth construction task; and based on the firstelement type and the second element type, determining that the firstconstruction task needs to be performed before the third constructiontask, that the third construction task needs to be performed before thefifth construction task, that the fifth construction task needs to beperformed before the second construction task, and that the secondconstruction task needs to be performed before the fourth constructiontask and the sixth construction task.
 2. The non-transitory computerreadable medium of claim 1, wherein the determination of the sequence oftasks is further based on the first object type.
 3. The non-transitorycomputer readable medium of claim 2, wherein the first object includesat least part of a wall, and the method further comprises: in responseto the wall being a masonry wall, determine a first sequence of tasks;and in response to the wall being a stud wall, determine a secondsequence of tasks, the second sequence differs from the first sequence.4. The non-transitory computer readable medium of claim 2, wherein themethod further comprises: in response to the first object type being afloor, determine a first sequence of tasks; and in response to the firstobject type being a wall, determine a second sequence of tasks, thesecond sequence differs from the first sequence.
 5. The non-transitorycomputer readable medium of claim 1, wherein the determination of thesequence of tasks is further based on a dimension of the first object.6. The non-transitory computer readable medium of claim 1, wherein themethod further comprises: analyzing the at least part of theconstruction plan to identify spatial relationships among the firstobject, the first element and the second element; and further basing thedetermination of the sequence of tasks on the identified relationships.7. The non-transitory computer readable medium of claim 1, wherein thedetermination of the sequence of tasks is further based on a secondobject identified by analyzing the construction plan.
 8. Thenon-transitory computer readable medium of claim 1, wherein thedetermination of the sequence of tasks is further based on an analysisof an image captured in the construction site.
 9. The non-transitorycomputer readable medium of claim 1, wherein the first element comprisesa water element planned to be connected to the first object, the secondelement comprises an electrical element planned to be connected to thefirst object, the first task comprises building at least part of thefirst object, the second task comprises covering at least part of thefirst object with at least one of plaster, paint and tiles, the thirdtask comprises placing a water pipe in at least part of the firstobject, the fourth task comprises placing the water element, the fifthtask comprises placing a tunnel for electrical wires in at least part ofthe first element, and the sixth task comprises placing the electricalelement.
 10. The non-transitory computer readable medium of claim 1,wherein the first object comprises at least part of a wall planned to beconstructed in the construction site, the first element comprises a sinkplanned to be connected to the at least part of the wall, the secondelement comprises an electrical outlet planned to be connected to the atleast part of the wall, the first task comprises building the at leastpart of the wall, the second task comprises plastering the at least partof the wall, the third task comprises placing a water pipe in the atleast part of the wall, the fourth task comprises placing the sink, thefifth task comprises placing a tunnel for electrical wires in the atleast part of the wall, and the sixth task comprises placing theelectrical outlet.
 11. The non-transitory computer readable medium ofclaim 1, wherein the first object comprises at least one of at leastpart of a room planned to be constructed in the construction site, atleast part of a wall planned to be constructed in the construction site,at least part of a floor planned to be constructed in the constructionsite and at least part of a ceiling planned to be constructed in theconstruction site.
 12. The non-transitory computer readable medium ofclaim 1, wherein the method further comprises providing informationindicative of the determined sequence of tasks.
 13. The non-transitorycomputer readable medium of claim 1, wherein the method furthercomprises: obtaining a plurality of images captured in the constructionsite; analyzing the plurality of images to determine whether an actualperformance sequence of tasks at the construction site comply with thedetermined sequence of tasks; and in response to a determination thatthe actual performance sequence of tasks do not comply with thedetermined sequence of tasks, providing a first notification; and inresponse to a determination that the actual performance sequence oftasks comply with the determined sequence of tasks, forging providingthe first notification.
 14. The non-transitory computer readable mediumof claim 1, wherein the method further comprises: obtaining at least oneimage captured in the construction site; analyzing the at least oneimage to determine that at a particular point in time a performance ofthe second construction task began and a performance of the fifthconstruction task is incomplete; and in response to the determinationthat at the particular point in time the performance of the secondconstruction task began and the performance of the fifth constructiontask is incomplete, providing a notification.
 15. The non-transitorycomputer readable medium of claim 1, wherein the method furthercomprises: obtaining at least one image captured in the constructionsite; analyzing the at least one image to identify at least one taskperformed in the construction site; and based on the identified at leastone task performed in the construction site and the determined sequenceof tasks, selecting a prospective task; and providing an indication ofthe selected prospective task.
 16. The non-transitory computer readablemedium of claim 1, wherein the method further comprises: analyzing anelectronic record associated with the construction site to identify atleast one task performed in the construction site; and based on theidentified at least one task performed in the construction site and thedetermined sequence of tasks, selecting a prospective task; andproviding an indication of the selected prospective task.
 17. Thenon-transitory computer readable medium of claim 1, wherein the methodfurther comprises: analyzing the at least part of the construction planto identify a second object of the first object type planned to beconstructed in the construction site; identify a fourth plurality ofconstruction tasks for the construction of the second object, the fourthplurality of construction tasks comprises at least a particularconstruction task; analyzing the at least part of the construction planto determine whether the first object is bigger than the second object;and in response to a determination that the first object is bigger thanthe second object, determining that the first construction task needs tobe performed before the particular construction task.
 18. Thenon-transitory computer readable medium of claim 1, wherein the methodfurther comprises: analyzing the at least part of the construction planto identify a second object of the first object type planned to beconstructed in the construction site; and basing the determination ofthe sequence of tasks on the second object.
 19. A system for determiningschedule constraints from construction plans, the system comprising: atleast one processor configured to: obtain at least part of aconstruction plan for a construction site; analyze the at least part ofthe construction plan to identify a first object of a first object typeplanned to be constructed in the construction site, a first element of afirst element type planned to be connected to the first object, and asecond element of a second element type planned to be connected to thefirst object; based on the first object type, determine a firstplurality of construction tasks for the construction of the firstobject, the first plurality of construction tasks comprises at least afirst construction task and a second construction task; based on thefirst element type, determine a second plurality of construction tasksfor the construction of the first object and related to the firstelement, the second plurality of construction tasks comprises at least athird construction task and a fourth construction task; based on thesecond element type, determine a third plurality of construction tasksfor the construction of the first object and related to the secondelement, the third plurality of construction tasks comprises at least afifth construction task and a sixth construction task; and based on thefirst element type and the second element type, determine that the firstconstruction task needs to be performed before the third constructiontask, that the third construction task needs to be performed before thefifth construction task, that the fifth construction task needs to beperformed before the second construction task, and that the secondconstruction task needs to be performed before the fourth constructiontask and the sixth construction task.
 20. A method for determiningschedule constraints from construction plans, the method comprising:obtaining at least part of a construction plan for a construction site;analyzing the at least part of the construction plan to identify a firstobject of a first object type planned to be constructed in theconstruction site, a first element of a first element type planned to beconnected to the first object, and a second element of a second elementtype planned to be connected to the first object; based on the firstobject type, determining a first plurality of construction tasks for theconstruction of the first object, the first plurality of constructiontasks comprises at least a first construction task and a secondconstruction task; based on the first element type, determining a secondplurality of construction tasks for the construction of the first objectand related to the first element, the second plurality of constructiontasks comprises at least a third construction task and a fourthconstruction task; based on the second element type, determining a thirdplurality of construction tasks for the construction of the first objectand related to the second element, the third plurality of constructiontasks comprises at least a fifth construction task and a sixthconstruction task; and based on the first element type and the secondelement type, determining that the first construction task needs to beperformed before the third construction task, that the thirdconstruction task needs to be performed before the fifth constructiontask, that the fifth construction task needs to be performed before thesecond construction task, and that the second construction task needs tobe performed before the fourth construction task and the sixthconstruction task.